RIA Servicesでテーブル・ストレージを利用する その3 〜本番環境で実行、けど失敗〜
以前に紹介した Windows Azure上でRIA Servicesを利用する方法を試して頂いた方は居るだろうか。以下の記事を通読すれば、Development Fabric+Development Storageのローカル環境での稼働確認は行えるため、未読の方はまずご一読頂きたい。
- RIA Servicesでテーブル・ストレージを利用する その1 〜ローカル実行で参照処理編〜 id:waritohutsu:20101103:1288751665
- RIA Servicesでテーブル・ストレージを利用する その2 〜ローカル実行で追加処理編〜 id:waritohutsu:20101103:1288755345
本記事の流れ
今回は、以下のステップで作成したアプリケーションのポータルサイトへの移行を行う*1。
- アプリケーションはDevelopment Fabricで動作させ、ストレージはWindows Azure Storage Servicesの本番環境に接続(下図の項番2に相当)
- アプリケーションはWindows Azure Fabricで動作させ、ストレージはWindows Azure Storage Servicesの本番環境に接続(下図の項番3に相当)
図にも記述しているが、完全に本番環境に移行した場合、なぜかWindows Azure Storage Servicesへのアクセスがうまくいかない。知見のある方は是非ご指摘頂きたい。
アプリケーションはDevelopment Fabricで動作させ、ストレージはWindows Azure Storage Servicesの本番環境に接続
この設定変更は非常に容易だ。設定変更手順を示したので、下図を参考に設定変更をして頂きたい。
- Visual Studioのソリューションエクスプローラから、Windows Azureクラウドサービスの当該Roleをダブルクリック
- 当該Roleの「設定」タブを選択する
- 接続文字列の設定変更用のダイアログを起動するため、「…」ボタンを押下する
- Azureポータルサイトに記載されている資格情報を入力
設定変更後、Visual StudioからF5でアプリケーションを実行して頂きたい。アプリケーションが問題なく動作しているのが確認できるはずだ。
アプリケーションはWindows Azure Fabricで動作させ、ストレージはWindows Azure Storage Servicesの本番環境に接続
次に、動作アプリケーションをWindows Azure Fabricで動作させてるための手順を紹介する。AzureポータルサイトにアプリケーションをデプロイしてWindows Azure Fabricで動作させる際の注意点は、ローカル環境(Development Fabric)とAzureポータルサイト(Windows Azure Fabric)ではインストールされたDLLが異なるという点だ*2。
このため、Azureポータルサイト側に用意されていないアセンブリに対し「ローカルコピー=True」の設定を行う必要がある。当該アセンブリは以下になるので、設定変更を実施して頂きたい。
- Microsoft.ServiceModel.DomainServices.WindowsAzure
- System.ServiceModel.DomainServices.Hosting
- System.ServiceModel.DomainServices.Server
設定変更後にアプリケーションをAzureポータルサイトにデプロイ後、アプリケーションの初期化処理終了後にアクセスしてほしい。WEBアプリケーション側にはアクセス可能であり、Silverilghtアプリケーションの起動は確認できるが、肝心のデータ参照&データ追加がうまく動作しない。
注意
「アプリケーションはWindows Azure Fabricで動作させ、ストレージはWindows Azure Storage Servicesの本番環境に接続」でAzureポータルサイトにデプロイを行った際、Roleの状態が「Unresponsive」と表示されることがある。この場合、「ローカルコピー=True」の設定が失敗しており、アセンブリの参照で例外が発生している可能性が高い。再度設定を見直してほしい。
*1:MSDNにこんなサイトがあるのね http://msdn.microsoft.com/en-us/library/dd179441.aspx
*2:本件と似たケースとして、「ASP.NET MVC3 Preview on Windows Azure をしてみる id:waritohutsu:20100831:1283275189 」が存在する。是非当記事も一読して頂きたい