CodeZine(コードジン)

特集ページ一覧

ASP.NET Universal Providersによるセッション管理

Windows Azure 新機能チュートリアル(11)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/03/05 14:00
目次

ASP.NET Universal Providersの設定

 先ほども説明したとおり、ASP.NET Universal ProvidersはSDKに同梱されているため、特別なインストールは不要ですが、利用するには設定が必要です。

[1]Webロールを作成する

 Visual Studioを管理者権限で起動し、[ファイル]-[新規作成]-[プロジェクト]を選択します。Windows Azureプロジェクトを作成し、[ASP.NET Webロール」を作成します。この状態で、すでにASP.NET Universal Providersは、プロジェクトに取り込まれています。[ソリューションエクスプローラー]の参照設定から「System.Web.Provider」への参照(注6)が確認できます(図5)。

図5 参照設定の確認
図5 参照設定の確認

注6

 アセンブリや使用許諾(EULA)、READMEファイルなどは、「ソリューションフォルダ\packages\System.Web.Providers.1.0.1」に格納されています。

[2]Web.configを設定する

 Web.configファイルを開きます。基本的な構成設定は、初めから記述されていますがいくつか修正する必要があります(リスト1)。

リスト1 Web.configファイル
<configuration>
  ...
  <connectionStrings>
    ...
    <!-- (1) 接続先の設定-->
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet_177ec2b52bf64bc68eef09511d71e318;Integrated Security=True;MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
  ...
    <!--(2) 状態管理プロバイダの設定 -->
    <sessionState mode="Custom" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </sessionState>
  </system.web>
  <system.webServer>

 (1)は既定の接続先(DefaultConnection)への設定文字列です。最初は、SQL Server Expressのインスタンスへ接続されるように構成されています。ここでは、まず開発環境で実行するために変更せず、後ほど編集します。

 (2)のsessionState要素のmode属性は、初期状態だと「InProc」です。これを「Custom」に変更して指定されたカスタムセッション状態プロバイダーが使用されるように構成します。

[3]エミュレーター上で実行する

 セッション情報を格納するASP.NETアプリケーションを、Windows Azure エミュレーター上で実行します。プログラムの詳細は、サンプルファイルを確認してください。

図6 エミュレーター上での実行
図6 エミュレーター上での実行

 図6のように、初回アクセス日時などの情報をセッション状態に格納するプログラムです。複数のブラウザからアクセスし、正しくセッション情報が共有できているか確認してください。

[4]セッションデータの確認

 セッション情報はSQL Server Expressのインスタンスに格納されています。SQL Server Management Studioを起動し、オブジェクトエクスプローラーのデータベースを確認します(図7)。

図7 SQL Server Expressの確認
図7 SQL Server Expressの確認

 「aspnet_」で始まるデータベースが、ASP.NET Universal Providersで作成されたデータベースです。初回リクエスト時に、セッション情報格納用テーブルとともに作成されます。セッションの有効期限が切れたデータの削除は、あるタイミングで接続があった場合にチェックされ削除されます。有効期限切れのセッションデータが多くある場合、レスポンスが悪化する可能性がありまが、小規模な利用なら問題にならないでしょう。

 開発環境におけるデータベース名は、リスト1 ‐(1)の接続文字列中に埋め込まれています。プロジェクトごとに異なる名前が付けられるため、不要になったデータベースは手動で削除する必要があります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2012/03/06 23:45 1ページ目の表 サポートについて誤りを修正。また、サポートについて追記した。

バックナンバー

連載:Windows Azure新機能チュートリアル

もっと読む

著者プロフィール

  • WINGSプロジェクト statemachine(statemachine)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5