1

App fabric cacheセッションプロバイダーとして使用した分散セッションメンテナンス用に、ネットワークロードバランサーによって制御されるWebアプリケーション(x)をホストする4つのWebサーバーを含むWebファームがあります。

リージョンが作成されたキャッシュサーバーを1つだけ使用します。

私の構成には、リージョン名と共有アプリIDが含まれています。これは、ファーム全体でホストされているすべてのWebアプリ(x)で同じです。

ただし、IPを使用してWebアプリにアクセスすると、すべてのセッションが異なります。

http://10.10.10.1/myapp/file.aspx returns different session values
http://10.10.10.2/myapp/file.aspx returns different session values
http://10.10.10.3/myapp/file.aspx returns different session values
http://10.10.10.4/myapp/file.aspx returns different session values
http://servername/myapp/file.aspx returns different session values

このシナリオでのsharedIdの使用は何ですか?私の意図は、パフォーマンスのためにアプリが複数のサーバーでホストされているにもかかわらず、単一のセッションを維持することです。

主な問題は、キャッシュが正常に動作しないことです。変更後1〜2分でもセッション値が更新されない場合があります

私のweb.config設定

<section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere"/>

<dataCacheClient>
    <!-- cache host(s) -->
        <hosts>     
          <host name="x" cachePort="22233" />
        </hosts>
    <securityProperties mode="None" protectionLevel="None" />
</dataCacheClient>


<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
    <providers>
        <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="xyz" sharedId="app123"  />
  </providers>
</sessionState>
4

1 に答える 1

1

常に同じASPNETCookieを保持しているかどうかを確認してください(お気に入りのブラウザーで開発者ツールを使用)。Cookieもドメインにバインドされているため、ドメインが異なる場合、ブラウザはCookieを送信しません。

キャッシュクラスターで、セッション数を確認します。複数のセッションがある場合は、分散セッション管理に問題が発生する可能性があります。

于 2013-01-28T08:28:18.763 に答える