Azure で ASP.NET セッション状態のタイムアウトを変更しようとしていますが、ASP.NET セッションの有効期限が切れる方法と名前付きキャッシュの設定が切断されていることに気付きました。Azure のカスタム セッション状態プロバイダーの web.config sessionState タイムアウト プロパティを変更するだけで十分ですか?それとも、サービス構成の名前付きキャッシュ設定を変更してセッション タイムアウトに影響を与える必要がありますか?
MSDN によると、HttpSessionState.Timeout プロパティは、セッション状態プロバイダーがセッションを終了するまでの要求間の許容時間 (分単位) です。つまり、すべての Session オブジェクトは、SessionID を持つ各リクエストの後に新しいリースを取得します。
当社の Windows Azure ASP.NET アプリは、2 つの運用インスタンスでサポートされており、Windows Azure キャッシング用のセッション状態プロバイダーを介して、分散された同じ場所にあるキャッシュでセッション状態を維持するように構成されています。カスタム セッション状態プロバイダーを構成する web.config ファイルのスニペットを次に示します。
<!-- Windows Azure Caching session state provider -->
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
<providers>
<add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
</providers>
</sessionState>
<!-- Windows Azure Caching output caching provider -->
<caching>
<outputCache defaultProvider="AFCacheOutputCacheProvider">
<providers>
<add name="AFCacheOutputCacheProvider" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheOutputCache" />
</providers>
</outputCache>
</caching>
上記の設定は、ASP.NET セッション状態プロバイダーの構成設定 (Windows Azure キャッシュ)で定義されています。デフォルトの dataCacheClientName を使用しています。既定のキャッシュとその他の名前付きキャッシュは、Web ロール プロパティの [キャッシュ] タブで構成されます。GUI は、選択したサービス構成の .cscfg ファイルに非常に判読しにくい方法で格納されている名前付きキャッシュ設定を簡単に維持する方法を提供します。デフォルト キャッシュの Eviction Policy、Expiration Type、および Time to Live プロパティに注意してください。これらのプロパティは、「Windows Azure キャッシュの使用方法」で定義されています. これらは、キャッシュされた各オブジェクトには独自のライフ サイクルがあることを意味しますが、Session オブジェクトはすべて、ASP.NET セッションの有効期限が切れるまで存続する必要があります。sessionState のタイムアウトを 60 分に延長するには、名前付きキャッシュの設定を変更する必要がありますか? それとも、デフォルトの名前付きキャッシュの設定に関係なく、セッション プロバイダーは正しいことを行いますか? 名前付きキャッシュの設定も調整する必要がある場合、どうすればよいですか?