0

これにはキャッシュ クラスターを使用したくありません。現在、キャッシュ クラスターの安定性の問題に直面しているため、定期的にメンテナンスを行っているためです (完全に私たちのせいです)。セッション ストレージに専用のクラスターを使用できますか? (クラスターを忘れて、少なくとも 1 つのホスト?)

これは、同じアプリケーションで 2 つのクラスターを使用するようなもので、1 つはキャッシュ用、もう 1 つはセッション ストレージ用であり、これらは同じ構成ファイルにあります。

私のアプローチは正しいですか?どんな助けでも大歓迎です。ありがとう!

@Cyber​​Max のおかげで、この環境をセットアップできました。しかし、ページを実行するとエラーが発生します:

セクション宣言がないため、構成セクション「dataCacheClients」を読み取ることができません

500内部サーバーエラー

ここに私の設定があります:

<configuration>
  <configSections>
<!-- required to read the <dataCacheClient> element -->
<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"/>

 </configSections>

  <system.web>
<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="Microsoft.ApplicationServer.Caching.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add assembly="Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </assemblies>
</compilation>
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <!--specify the named cache for session data-->
    <add name="AppFabricCacheSessionStoreProvider"  type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="sample-cache" dataCacheClientName="VirtualCache"/>
  </providers>
</sessionState>

 </system.web>


 <dataCacheClients>
   <dataCacheClient name="serverCache">
     <localCache isEnabled="false" sync="NotificationBased" objectCount="100000"/>
     <clientNotification pollInterval="5"/>
     <!--cache host(s)-->
     <hosts>
       <host name="!@13452662.gf.com" cachePort="22233"/>
       <host name="!@13452663.gf.com" cachePort="22233"/>
     </hosts>
     <securityProperties mode="None" protectionLevel="None" />
     <transportProperties maxBufferPoolSize="2147483647" maxBufferSize="2147483647" channelInitializationTimeout="60000" receiveTimeout="900000"/>
    </dataCacheClient>

   <dataCacheClient name="VirtualCache">
     <localCache isEnabled="false" sync="NotificationBased" objectCount="100000"/>
     <clientNotification pollInterval="5"/>
    <hosts>
       <host name="localhost" cachePort="22233"/>
       <host name="localhost" cachePort="22234"/>
       <host name="localhost" cachePort="22235"/>
       <host name="localhost" cachePort="22236"/>
    </hosts>
   </dataCacheClient>
</dataCacheClients>
</configuration>

編集 :

に変更dataCacheClientするとdataCacheClients、次のエラーが発生します。

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

 Parser Error Message: Web configuration error. Check your Web.config file, or revert to     the last working version.dataCacheClientName

Source Error: 



Line 31:       <providers>
Line 32:         <!--specify the named cache for session data-->
Line 33:         <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="sample-cache" dataCacheClientName="VirtualCache"/>
Line 34:       </providers>
Line 35:     </sessionState>
4

1 に答える 1

1

はい、できます。

AppFabric セッション状態プロバイダーを構成するときに、dataCacheClient 名を指定できます。これは、dataCacheClients 構成セクションから使用する dataCacheClient セクションの名前です。デフォルトでは、プロバイダーは「default」という名前の dataCacheClient セクションを使用します。

、 そのような

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

構成ファイルに複数の dataCacheClient を含めることができます。

 <dataCacheClients>
    <dataCacheClient name="dataCacheClient1">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="dataCacheClient2">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

したがって、複数のキャッシュ クラスターを使用しても問題はありません。

編集 :

AppFabric 1.0 の構成はこちら

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <!--configSections must be the FIRST element -->
  <configSections>
     <!-- required to read the <dataCacheClient> element -->
     <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"/>
  </configSections>

  <!-- cache client -->
  <dataCacheClient>    
    <!-- cache host(s) -->
    <hosts>
      <host
         name="CacheServer1"
         cachePort="22233"/>
    </hosts>
  </dataCacheClient>

  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
      <providers>
        <!-- specify the named cache for session data -->
        <add 
          name="AppFabricCacheSessionStoreProvider" 
          type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
          cacheName="NamedCache1"
          sharedId="SharedApp"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

AppFabric 1.1 の構成はこちら

<?xml version="1.0"?>

<configuration>
  <configSections>
    <section name="dataCacheClients"
             type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
             allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default" channelOpenTimeout="10000">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
      <providers>
        <add name="AppFabricCacheSessionStoreProvider"
             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
             cacheName="default"
             useBlobMode="true"
             dataCacheClientName="default"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>
于 2013-06-03T07:57:52.600 に答える