normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

ASP.NET MVC3 RTMをWindows Azureで動かす!!〜懇切丁寧な解説付き〜

皆様待望のASP.NET MVC3 RTMがついにリリースされた。そう、もう id:waritohutsu:20100926:1285487020 や id:waritohutsu:20101003:1286093495 の様に「最新版では利用方法が〜」等という必要がなくなった。皆様も安心してASP.NET MVC3を利用して頂きたい。
今回は、ASP.NET MVC3 RTMをセットアップし、Windows Azureのホスティッドサービスで動作させるまでの手順とTIPSを紹介する。

ASP.NET MVC3 RTMのセットアップ

詳細はASP.NETエバンジェリストhttp://twitter.com/chack411:chack411 氏のブログである 待望の ASP.NET MVC 3 RTM リリース! NuGet, WebMatrix, Orchard などなど Web 開発が新次元へ を参照して欲しいが、Web Platform Installer 3.0を利用した手順を簡単に紹介する。
http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3 サイトから、Web Platform Installer 3.0を所得し実行ファイルを起動する。同ファイルを実行するとウィザードが表示されるので、以下の画像に従ってセットアップを実行してほしい。

また、ASP.NET MVC3 RTMのインストール時にセットアップが途中で停止することがあるようだ。詳しくはまめしば雑記 > ASP.NET MVC 3 RTM に含まれる KB2483190 のインストールで止まる場合の解決法を参照して頂きたい。

Windows Azure のホスティッドサービスでの実行

Windows Azure上でASP.NET MVC3 RTMを実行するには、以下の二つに注意する必要がある。

  1. ASP.NET MVC3プロジェクトをWeb Roleとして追加する手順が若干複雑
    • 「1. ASP.NET MVC3プロジェクトをWeb Roleとして追加」で解説
  2. Windows Azure ホスティッドサービスの提供しないDLLをローカルコピー Trueに設定する必要がある
    • 「2. ホスティッドサービスの提供しないDLLをローカルコピー Trueに設定する」で解説
1. ASP.NET MVC3プロジェクトをWeb Roleとして追加

ASP.NET MVC3プロジェクトを直にWeb Roleとして追加することができないため、新規プロジェクトとしてASP.NET MVC3プロジェクトを追加した後にWeb Roleに追加する必要がある。以下の画像に従って、ASP.NET MVC3のプロジェクトをWeb Roleとして登録してほしい。

以下の画像で凡例を示しているが、「Windows Azureプロジェクトに対して、新規にWeb Roleを追加する場合」や「Windows Azureプロジェクト新規作成時にWeb Roleを追加する場合」には対応していないので注意が必要だ。

2. ホスティッドサービスの提供しないDLLをローカルコピー Trueに設定する

hmoriya55氏の発言で述べられているが、ASP.NET MVC3をWindows Azureホスティッドサービスで動作させるには幾つかのDLLの設定を変更する必要がある。
具体的には、以下のDLLの設定をローカルコピー Trueにする必要がある。

  • System.Web.Mvc.dll
  • C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies以下のDLL全て

以下の画像例に従って設定を変更してほしい。

3. 稼働確認

設定が完了したので、Windows Azure上にデプロイを行う。サービスの状態が「Ready」になるのを待ってアクセスすると、無事アプリケーションが動作しているのが確認できる。