6

Azureで実行するMVC4アプリケーションの場合、セッションを同じ場所にあるキャッシュに保存します。マイクロソフトが提供するこのハウツーで説明されているように。

2つの小さなインスタンスを実行しましたが、すべてが正常に機能しているようです。アプリケーションにログインできますが、アプリケーション内を閲覧してもログインしたままになります。したがって、セッションは両方のインスタンスで機能しているようです。

ただし、セッションデータを更新すると、次のようになります。

HttpContext.Current.Session["someVar"] = "new value";

その変更は、その特定のリクエストを処理するインスタンスにのみ影響を与えるようです。アプリケーションを参照しているときに、初期値を取得することもあれば、更新された値を取得することもあります。

web.configに変更を加えていないので、Nugetパッケージによって追加されたときとまったく同じように見えます。

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider"
          type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
          cacheName="default"
          useBlobMode="true"
          dataCacheClientName="default" />
  </providers>
</sessionState>

Azureキャッシュを使用するときに、別の方法でセッションを処理する必要がありますか、それともここで欠けているものですか?

4

1 に答える 1

7

applicationName分散キャッシュが同じアプリケーション境界内の共有状態を表示できるように、を割り当てる必要があります。参照については、MSDN フォーラムの投稿を参照してください

<add name="AppFabricCacheSessionStoreProvider"
          type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
          applicationName="azureMVC4App"
          cacheName="default"
          useBlobMode="true"
          dataCacheClientName="default" />

アプリケーションの境界を越えてキャッシュ状態を共有したい場合は、割り当てる必要がありますsharedId

于 2012-09-11T13:31:47.437 に答える