Question

I get this error when i use multiple dataCacheClients. Ive seen this question and this msdn question but at the time of AppFabric 1.0, multiple dataCacheClients were not possible. Microsoft added this feature in AppFabric 1.1 (see changelog), which I'm using currently. Any ideas on why I get this error? Here's my config file:

<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>

NOTE:

I'm using the DLL's found in .\Program Files\AppFabric 1.1 for Windows Server

More Error details :

enter image description here

Était-ce utile?

La solution

I was finally able to get it working. There were some rudimentary but stupid mistakes I committed. Hopefully someone with the same issues would be able to get some guidance on this by my answer. The mistakes I committed/how it was rectified :


1) Check the DLL's CLR version

Always, I mean, always check the version of the DLLs you're using to refer in your consuming client. The DLLs to look out for are :

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

  • Microsoft.Web.DistributedCache (this was what was causing me problems - I had an older version added in my solution; there's no need to refer this, just having this DLL in the same folder as the Caching.Core and Caching.Client is enough)

A good (or rather fail-proof) way to get the latest DLLs is to download & install Appfabric and get the DLLs from .\Program Files\AppFabric 1.1, add it in a folder inside your project and refer it from there.


2) DataCacheFactory must have a reference to what dataCacheClient its referring to

Just like how AppFabricCacheSessionStoreProvider must contain a dataCacheClientName attribute to refer to a specific cluster put in dataCacheClient, DataCacheFactory init in code must also contain a reference to the dataCacheClient which is gonna take care of caching :

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

Thanks to everyone who helped in solving this issue!

Autres conseils

I had this problem on one of our development machines and it was ultimately found to be installation of Windows Server AppFabric. My configuration was totally correct. The same configuration worked on all machines except one and once we un-installed Windows Server AppFabric from that machine and installed Microsoft AppFabric 1.1 version, the issue was resolved.

I'm also using AppFabric to store Asp.NET SessionState.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top