このエントリーはMSDNのチュートリアル「Building Windows Azure Applications with the Caching Service」の「Task1 – Running the Azure Store Sample Site in the Compute Emulator」の日本語訳になります。このコンテンツ、日本語訳全体については、こちらのエントリーを参照してください
Exercise1: Using the Windows Azure Caching for Session State
このエントリーでは、out-of-processのセッションステートストレージの仕組みとしてWindows Azure Cachingを利王します。「Azure Store」というASP.NET MVCで実装されたサンプルのショッピングアプリケーションを利用します。まずは、コンピュートエミュレーター上で実行し、そのあとWindows Azure CachingをASP.NETセッションステートのバックエンドストアとして利用していきます。ダウンロードしたサンプルソースの「begin」フォルダにあるソース(デフォルトのASP.NET InProcセッションステートプロバイダ)を使用して開始します。次に、Windows Azure Cachingアセンブリへの参照を追加し、ショッピングカート内のコンテンツをWindows Azureで提供される分散キャッシュに保存するようにセッションステートプロバイダの設定を行います。
Task1 – Running the Azure Store Sample Site in the Compute Emulator
Azure用のショッピングサイトアプリケーションをデフォルトのセッションステートプロバイダーを使用してコンピュートエミュレーター上で動作させます。後のエントリーで、セッションステートプロバイダーをWindows Azure Cachingに変更します。
1.Visual Studio 2010を管理者モードで起動します。
2.「Source\Ex1-CacheSessionState\Begin」にあるチュートリアル開始時点のソリューションを開きます。
Note: 【重要】アプリケーションを実行する前に、スタートアッププロジェクトが設定されていることを確認してください。また、MVCプロジェクトでスタートページは空白でなければなりません。
スタートアッププロジェクトの設定は、ソリューションエクスプローラーからAzureStoreServiceプロジェクトを右クリックして[スタートアッププロジェクトに設定]を選択します。
スタートページの設定は、ソリューションエクスプローラーからMVCAzureStoreプロジェクトを右クリックして[プロパティ]を選択します。プロパティウィンドウから[Web]タブへ移動し、[開始動作]-[ページを指定する]を選択します。フィールドは空白のままにしておきます。
3.Web.configファイルにて、自身の環境にあるデータベースへ接続するようにNorthwindEntities接続文字列を更新します。connectionStringセクションにある[YOUR-SQL-AZURE-SERVER-ADDRESS]、[SQL-AZURE-USERNAME]、[SQL-AZURE-PASSWORD]の3ヶ所を、SQL Azureのデータベースサーバー名、管理ポータルでデータベース作成時に使用したユーザー名とパスワードに変更します。
Note: SQL Azure上にNothwind2データベースを作成する際にセットアップセクションの手順どおりに行なっていること、SQL Azureファイヤウォール設定が行われていることを確認してください。
4.F5キーを押下し、アプリケーションをコンピュートエミュレーター上で実行します。
5.アプリケーションのメインページが表示されます。SQL Azureデータベースから商品データを取得して一覧形式で表示しています。
図8.AzureStore商品一覧ページ
6.リストから商品を選択し、カートに追加を行なってください。この操作を何度か行なってください。
7.「Checkout」リンクをクリックして、カートに入っている商品を見ます。選択した商品がリストに表示されているはずです。カートに追加された商品情報は現在のセッションに保存されています。
図9.カート内の商品情報
8.ウィンドウを閉じたり、このチェックアウトページから移動しないでください。
9.タスクバーからコンピュートエミュレータアイコンを右クリックし、[Show Compute Emulator UI]を選択します。
10.コンピュートエミュレーターからAzureStoreServiceノードを右クリックして、[Suspend]を選択します。
図10.Webロールインスタンスを休止状態にする
11.コマンドプロンプトを管理者として起動します。スタートメニューから[すべてのプログラム]-[アクセサリ]-[コマンドプロンプト]を右クリックして[管理者として実行]の操作で起動し、「iisreset」を実行します。
図11.iisresetコマンドの実行
Note: この2つの手順はロールのリサイクルとIISの再起動を行なっています。Windows Azureでロールのインスタンスが再起動される状態をシミュレートしています。
12.コンピュートエミュレーターの画面に戻り、インスタンスのアイコンが紫になってサービスが[Destroyed]状態になっていることを確認します。そして、再度サービスを再開します。AzureStoreServiceノードを右クリックして[Run]を実行します、サービスが開始されるのを待ちます。
Note: IE以外のブラウザを使用している場合、コンピュートエミュレータ上で休止したインスタンスは削除されVisual Studioのデバッグが中止されるかもしれません。その場合は、Visual Studioに戻り、F5キーを押下してコンピュートエミュレータでアプリケーションを実行し、サービスが開始されるのを待ってください。
13.チェックアウトページを表示しているブラウザに戻り、ページの更新を行なってください。注文情報が空になっていることに気づくと思います。
Note: アプリケーションはWebサーバーのメモリ情報セッション状態を保持するin-procセッションステートを使用しています。サービスのインスタンスが停止すると、カート情報を含めたすべてのセッション情報が削除されます。次のエントリーで、セッション状態をWindows Azure Cachingを使用して保持するようにアプリケーションの変更を行います。これによって、アプリケーションをホストしている複数のインスタンス間でセッション状態を維持することができます。
14.ブラウザを閉じてアプリケーションを終了してください。
次は「Task2 – Configuring Session State Using Windows Azure Caching」です。