2012-10-25 3 views
1

Azure 캐시 오류가 반복적으로 발생하기 시작했습니다. 만료 된 세션과 관련이있는 것 같습니다. 무작위 샘플입니다. 정적 파일에서 발생합니다. 내가 이해하려고 노력 중이 야Azure 세션 캐시 오류

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

을 다음과 같이 세션 상태 구성되어있다 :이 주변에 코드가 없습니다

 
Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 10/25/2012 9:49:15 AM 
Event time (UTC): 10/25/2012 9:49:15 AM 
Event ID: 004e617f16854e59b7a857ca542ae9fc 
Event sequence: 86004 
Event occurrence: 720 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/1273337584/ROOT-1-129955415508042441 
    Trust level: Full 
    Application Virtual Path:/
    Application Path: E:\sitesroot\0\ 
    Machine name: RD00155D36A377 

Process information: 
    Process ID: 3332 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\NETWORK SERVICE 

Exception information: 
    Exception type: DataCacheException 
    Exception message: ErrorCode:SubStatus:Key referred to does not exist. Create objects based on a Key to fix the error. 
    at Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody) 
    at Microsoft.ApplicationServer.Caching.DataCache.ExecuteAPI(RequestBody reqMsg, IMonitoringListener listener) 
    at Microsoft.ApplicationServer.Caching.DataCache.InternalResetObjectTimeout(String key, TimeSpan newTimeout, String region, IMonitoringListener listener) 
    at Microsoft.ApplicationServer.Caching.DataCache.c__DisplayClass68.b__67() 
    at Microsoft.ApplicationServer.Caching.DataCache.ResetObjectTimeout(String key, TimeSpan newTimeout) 
    at Microsoft.Web.DistributedCache.DataCacheRetryWrapper.PerformCacheOperation(Action action) 
    at Microsoft.Web.DistributedCache.DataCacheForwarderBase.ResetObjectTimeout(String key, TimeSpan newTimeout) 
    at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) 
    at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 



Request information: 
    Request URL: http://www.beko.co.uk/Scripts/jquery.nivo.slider.pack.js 
    Request path: /Scripts/jquery.nivo.slider.pack.js 
    User host address: 80.2.72.81 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 

Thread information: 
    Thread ID: 11 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 
    Is impersonating: False 
    Stack trace: at Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody) 
    at Microsoft.ApplicationServer.Caching.DataCache.ExecuteAPI(RequestBody reqMsg, IMonitoringListener listener) 
    at Microsoft.ApplicationServer.Caching.DataCache.InternalResetObjectTimeout(String key, TimeSpan newTimeout, String region, IMonitoringListener listener) 
    at Microsoft.ApplicationServer.Caching.DataCache.c__DisplayClass68.b__67() 
    at Microsoft.ApplicationServer.Caching.DataCache.ResetObjectTimeout(String key, TimeSpan newTimeout) 
    at Microsoft.Web.DistributedCache.DataCacheRetryWrapper.PerformCacheOperation(Action action) 
    at Microsoft.Web.DistributedCache.DataCacheForwarderBase.ResetObjectTimeout(String key, TimeSpan newTimeout) 
    at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) 
    at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

,

<dataCacheClients> 
    <dataCacheClient name="default"> 
    <hosts> 
     <host name="[mycachename]" cachePort="22233" /> 
    </hosts> 
    <securityProperties mode="Message"> 
     <messageSecurity authorizationInfo="[mykey]"></messageSecurity> 
    </securityProperties> 
    </dataCacheClient> 
    <dataCacheClient name="SslEndpoint"> 
    <hosts> 
     <host name="[mycachename]" cachePort="22243" /> 
    </hosts> 
    <securityProperties mode="Message" sslEnabled="true"> 
     <messageSecurity authorizationInfo="[mykey]"></messageSecurity> 
    </securityProperties> 
    </dataCacheClient> 
</dataCacheClients> 

편집의 Web.config 구성 a) 구성에서이 문제를 해결할 수있는 모든 것. b) 어떤 DLL이 관련되어 있고 최신 버전이 무엇입니까 (업데이트가 도움이되는지 알 수 있도록) c) 다른 사람이보고있는 경우.

꽤 많은 응용 프로그램 업데이트를 수행하고 Azure에서 캐시 크기를 업데이트 한 후에 시작되었습니다. 따라서 원인이 무엇인지는 확실하지 않습니다. 나는 코드 변경이 책임이 있다고 생각하지 않았지만 우리가 개발 프로세스에서 사용했던 PC 중 하나가 새로이 빌드됨에 따라 DLL을 업데이트했을 가능성이 있습니다.

+0

webconfig에서 사용자 정의 sessionState 공급자에 대한 구성을 추가 했습니까? 이것은 웹 캐시에서 캐시 캐시를 사용하여 세션을 처리하기 위해 추가 한 유일한 부분입니까? –

+0

yes : 업데이트 된 질문 – Andiih

+0

sslendpoint에 대한 공급자도 추가 했습니까? –

답변

0

nuget을 통해 azure.caching 및 azure.configuration을 업데이트 한 다음 다시 게시하면 오류가 사라지고 다른 코드 또는 구성이 변경되지 않으므로 어딘가에 DLL 버전간에 호환되지 않는 것처럼 보입니다.