ASP.NET 5 Beta 7 が公開されましたが、公式ブログで Mono なしで動作するということだったので Ubuntu Server に実際にインストールしてみました。

Ubuntu Server につては、Microsoft Azure でイメージは Ubuntu Server 14.04 LTS を使用しています。

インストールについては、ASP.NET 5 の公式マニュアルの Installing ASP.NET 5 On Linux のページを見てしました。最初は、注意を読んでなくて dnvm をインストールすると、下の図のように「dnvm needs unzip to proceed.」というメッセージが出ました。マニュアルをちゃんと見ると note に dnvm のインストールには unzip が必要と言うことが書いてありました。

ubuntu01.png

DNX とlibuv については、マニュアルどおりにインストールしました。

実際の動作のテストは、VS 2015 で作成した ASP.NET 5 プレビューテンプレートの Web Application を使ったものを使用しました。修正点は、Kestrel サーバーが動作するように project.json に以下の項目を追加しました。

"dependencies" に追加
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta7"

"commands" に追加
"kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:8000"

それで、「dnu restore」で依存パッケージを取得して、「dnx kestrel」で kestrel を起動するととアプリが動作しました。意外にあっけなく動作させることができました。

ubuntu02.png

Qiitaの「ASP.NET5 クロスプラットフォームでアプリケーションの動作環境を構築する」という記事では、「Ubuntuは、手順にある通りではうまくいきません。」と書かれていますが、それから比べると ASP.NET 5 の Linux 対応もかなり進んだと思います。

kestrel のポート番号を80に設定して起動するとチェックでエラーになります。本番環境での運用は、Nginx をリバースプロキシサーバーして使うようになるケースが多いような気もします。

コンソールアプリケーションの方もテストしてみました。ローカルディスクへの保存の処理を書いてみたのですが、このあたりは、DNX 4.5.1 と DNX Core 5.0 でライブラリーに変更があるのでコードの修正が必要になってきます。こういうケースでは、"frameworks"の設定は、VS だとどちらかでエラーがあるとコンパイルしないしエラーの表示もよく分からないものが表示されるので、使わない方の"framework"を削除しておいた方がいいようです。この関係を調べていて、.Net Core のドキュメントのページができているのに気がつきました。ただし、まだほとんどのページが作成中で使える状態にはなっていません。

以上テストをしてきて、ASP.NET 5 が Linux で実用的に使えるようになる日がかなり近づいていると感じました。