LoginSignup
9
9

More than 5 years have passed since last update.

ASP.NET vNextのサンプルをLinuxで動かした時のメモ

Posted at

手順

ConsoleAppを動かすまで

  • Ubuntu 14.04を使用
  • https://github.com/aspnet/Home に書いてある通りにインストールする。但し、以下の微修正が必要
  • monoのインストールはsource(3.4.1の作りかけ)からになるので、gitでcloneする。
  • 今日見たらテストが落ちてて最新のmaster動かなかったので、git checkout d8eaf05 してちょっと戻す
  • ビルドに必要なソフトをsudo apt-get install build-essential autoconf libtool checkinstall curl で入れる
  • ./autogen.shを実行する
  • make get-monolite-latestをして、コンパイルに必要なmonoを入れる
  • makeを実行
  • checkinstallでパッケージ化しつつインストールする
  • mono --versionで3.4.1になっていることを確認
  • curl https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh を実行し、kvmをインストール
  • kvm install latestで最新のkを入れる
  • https://github.com/aspnet/Home をcloneし、samples/ConsoleAppに移動
  • kpm restoreでパッケージを戻す
  • k runでコンソールアプリを起動

HelloWebを動かすまで

  • 上記状態でHelloWebサンプルに行き、k webコマンドを実行するとhttpapi.dllが無いと怒られる
  • https://github.com/aspnet/Home/blob/master/samples/HelloWeb/project.json をよく見ると、Microsoft.AspNet.Server.WebListenerをサーバとして使っている。これがどうも現状はLinux未対応らしい(IIS依存なのかな)
  • 仕方ないので、これを別のサーバに置き換える作業を行う
  • https://github.com/davidfowl/HelloWorldVNext/blob/master/src/helloworldweb/project.json こちらのjsonを見るとサーバとして、KestrelとNowinの2種類が使えることが分かる
  • KestrelはNode.jsでも使っているlibuvを使ったサーバで、高性能を期待できるのだが、絶賛開発中でまだMacとWindowsにしか対応していない(Linuxの対応のPRは見つけたが)
  • NowinはOWIN向けのピュアC#サーバで、monoが動けば動くHttpListener非依存のサーバである(これも開発中だが)。今回はこれをASP.NET vNext用に調整する
  • 調整のやり方は、https://github.com/davidfowl/HelloWorldVNext/tree/master/src/Nowin.vNext このフォルダの中身がNowinをvNextで使う実装なので、このフォルダを丸ごとHelloWebフォルダの隣に置く
  • HelloWeb/project.jsonのwebコマンドのところを Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5001 から Microsoft.AspNet.Hosting --server Nowin.vNext に書き換える
  • k runでHelloWebを起動(OWINのWelcomeページっぽいのが見えます)
9
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9