2013-06-04 3 views
0

dataCacheClients을 여러 개 사용할 때이 오류가 발생합니다. 필자는 this questionthis msdn question을 보았지만 AppFabric 1.0에서는 복수 dataCacheClients을 사용할 수 없었습니다. Microsoft는 현재이 기능을 AppFabric 1.1에 추가했습니다 (changelog 참조). 왜 내가이 오류가 발생하는지에 대한 아이디어가 있습니까? 여기 내 config 파일의 :서버 컬렉션을 비워 둘 수 없습니다. - Windows Server 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> 

참고 :

내가 사용하고 DLL의 .\Program Files\AppFabric 1.1 for Windows Server

더 많은 오류 정보에서 발견 :

enter image description here

답변

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.Distrib utedCache (이 문제는 저에게 문제를 일으키고있었습니다 - 나는 이전 버전을 내 솔루션에 추가했습니다. 이 참조 할 필요는 단지 Caching.Core

좋은 (또는 오히려 실패 방지를) 방법은 download & install Appfabric에 대한 최신 DLL을한다 얻고 얻을)입니다 충분히 Caching.Client과 같은 폴더에이 DLL을 갖는 없다 .\Program Files\AppFabric 1.1의 DLL을 프로젝트 내부에 추가하고 거기에서 참조하십시오.


2) DataCacheFactory는 그냥 AppFabricCacheSessionStoreProviderdataCacheClient에, 코드 DataCacheFactory 초기화가 있어야 넣어 특정 클러스터에 참조하기 위해 dataCacheClientName 속성을 포함해야하는 것처럼

를 참조 dataCacheClient 무엇인지에 대한 참조가 있어야합니다 또한 에 대한 참조가 포함되어 있습니다. caching :

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

이 문제를 해결하는 데 도움을 주신 모든 분들께 감사드립니다.

1

우리 개발 시스템 중 하나에서이 문제가 발생했으며 궁극적으로 Windows Server AppFabric을 설치 한 것으로 확인되었습니다. 제 구성이 완전히 정확했습니다. 동일한 구성이 하나의 시스템을 제외한 모든 시스템에서 작동하고 일단 해당 시스템에서 Windows Server AppFabric을 설치 해제하고 Microsoft AppFabric 1.1 버전을 설치하면 문제가 해결되었습니다.

또한 AppFabric을 사용하여 Asp.NET SessionState를 저장하고 있습니다.

관련 문제