0

当我使用多个dataCacheClients. 我已经看到了这个问题这个 msdn 问题,但是在 AppFabric 1.0 的时候,多个dataCacheClients是不可能的。Microsoft 在我目前使用的 AppFabric 1.1 中添加了此功能(请参阅更改日志)。关于我为什么会收到此错误的任何想法?这是我的配置文件:

<configuration>
<configSections>

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

<dataCacheClients>
<!--client 1 for caching-->
<dataCacheClient name="dataCacheClient1">
  <localCache isEnabled="false" sync="NotificationBased" objectCount="100000"/>
  <clientNotification pollInterval="5"/>
  <hosts>
    <host name="!2345623ghf1.fg.com" cachePort="22233"/>
  </hosts>
  <securityProperties mode="None" protectionLevel="None" />
  <transportProperties maxBufferPoolSize="2147483647" maxBufferSize="2147483647" channelInitializationTimeout="60000" receiveTimeout="900000"/>
</dataCacheClient>
<!-- client 2 for session -->
<dataCacheClient name="dataCacheClient2">
  <localCache isEnabled="false" sync="NotificationBased" objectCount="100000"/>
  <clientNotification pollInterval="5"/>
  <hosts>
    <host name="!2345623ghf2.fg.com" cachePort="22233"/>
  </hosts>
  <securityProperties mode="None" protectionLevel="None" />
  <transportProperties maxBufferPoolSize="2147483647" maxBufferSize="2147483647" channelInitializationTimeout="60000" receiveTimeout="900000"/>
</dataCacheClient>


</dataCacheClients>


<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>

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

笔记:

我正在使用在.\Program Files\AppFabric 1.1 for Windows Server

更多错误详情:

在此处输入图像描述

4

2 回答 2

1

我终于能够让它工作了。我犯了一些基本但愚蠢的错误。希望有同样问题的人能够通过我的回答得到一些指导。我犯的错误/如何纠正:


1)检查DLL的CLR版本

始终,我的意思是,始终检查您用于在消费客户端中引用的 DLL 的版本。需要注意的 DLL 是:

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

  • Microsoft.Web.DistributedCache(这就是导致我出现问题的原因 - 我在我的解决方案中添加了一个旧版本;没有必要引用这个,只需将此 DLL 与 and 放在同一个文件夹中Caching.CoreCaching.Client足够了)

获取最新 DLL 的一个好(或者更确切地说是防故障)方法是下载和安装 Appfabric并从 获取 DLL ,将其添加到项目.\Program Files\AppFabric 1.1的文件夹中并从那里引用它。


2)DataCacheFactory必须引用dataCacheClient它所指的内容

就像AppFabricCacheSessionStoreProvider必须包含一个dataCacheClientName属性来引用一个特定的集群一样,代码中的dataCacheClientinitDataCacheFactory也必须包含一个对要处理的dataCacheClient对象的引用caching

DataCacheFactory _factory = new DataCacheFactory(new DataCacheFactoryConfiguration("dataCacheClient1"))

感谢所有帮助解决此问题的人!

于 2013-06-04T17:45:47.953 回答
1

我在我们的一台开发机器上遇到了这个问题,最终发现是安装了 Windows Server AppFabric。我的配置完全正确。相同的配置适用于除一台机器以外的所有机器,一旦我们从该机器卸载 Windows Server AppFabric 并安装 Microsoft AppFabric 1.1 版本,问题就解决了。

我还使用 AppFabric 来存储 Asp.NET SessionState。

于 2013-07-19T16:13:23.950 回答