SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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)の接続文字列中に埋め込まれています。プロジェクトごとに異なる名前が付けられるため、不要になったデータベースは手動で削除する必要があります。

次のページ
まとめ

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows Azure新機能チュートリアル連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6405 2012/03/06 23:45

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング