1

我已经开始反复抛出 Azure 缓存错误。它似乎与过期的会话有关。这是一个随机样本 - 它发生在静态文件中。

事件代码:3005
事件消息:发生未处理的异常。
活动时间:10/25/2012 9:49:15 AM
活动时间(UTC):10/25/2012 9:49:15 AM
事件 ID:004e617f16854e59b7a857ca542ae9fc
事件序列:86004
事件发生:720
事件详细代码:0

应用信息:
    应用域:/LM/W3SVC/1273337584/ROOT-1-129955415508042441
    信任级别:完全
    应用程序虚拟路径:/
    应用路径:E:\sitesroot\0\
    机器名称:RD00155D36A377

处理信息:
    进程 ID:3332
    进程名称:w3wp.exe
    帐户名称:NT AUTHORITY\NETWORK SERVICE

异常信息:
    异常类型:DataCacheException
    异常消息:ErrorCode:SubStatus:Key 引用不存在。基于 Key 创建对象以修复错误。
   在 Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody)
   在 Microsoft.ApplicationServer.Caching.DataCache.ExecuteAPI(RequestBody reqMsg,IMonitoringListener 监听器)
   在 Microsoft.ApplicationServer.Caching.DataCache.InternalResetObjectTimeout(字符串键,TimeSpan newTimeout,字符串区域,IMonitoringListener 侦听器)
   在 Microsoft.ApplicationServer.Caching.DataCache.c__DisplayClass68.b__67()
   在 Microsoft.ApplicationServer.Caching.DataCache.ResetObjectTimeout(字符串键,TimeSpan newTimeout)
   在 Microsoft.Web.DistributedCache.DataCacheRetryWrapper.PerformCacheOperation(操作动作)
   在 Microsoft.Web.DistributedCache.DataCacheForwarderBase.ResetObjectTimeout(字符串键,时间跨度 newTimeout)
   在 System.Web.SessionState.SessionStateModule.BeginAcquireState(对象源,EventArgs e,AsyncCallback cb,对象 extraData)
   在 System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean& completedSynchronously)



索取资料:
    请求网址:http://www.beko.co.uk/Scripts/jquery.nivo.slider.pack.js
    请求路径:/Scripts/jquery.nivo.slider.pack.js
    用户主机地址:80.2.72.81
    用户:  
    是否经过身份验证:假
    认证类型:  
    线程帐户名称:NT AUTHORITY\NETWORK SERVICE

线程信息:
    线程 ID:11
    线程帐户名称:NT AUTHORITY\NETWORK SERVICE
    是否冒充:假
    堆栈跟踪:在 Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody)
   在 Microsoft.ApplicationServer.Caching.DataCache.ExecuteAPI(RequestBody reqMsg,IMonitoringListener 监听器)
   在 Microsoft.ApplicationServer.Caching.DataCache.InternalResetObjectTimeout(字符串键,TimeSpan newTimeout,字符串区域,IMonitoringListener 侦听器)
   在 Microsoft.ApplicationServer.Caching.DataCache.c__DisplayClass68.b__67()
   在 Microsoft.ApplicationServer.Caching.DataCache.ResetObjectTimeout(字符串键,TimeSpan newTimeout)
   在 Microsoft.Web.DistributedCache.DataCacheRetryWrapper.PerformCacheOperation(操作动作)
   在 Microsoft.Web.DistributedCache.DataCacheForwarderBase.ResetObjectTimeout(字符串键,时间跨度 newTimeout)
   在 System.Web.SessionState.SessionStateModule.BeginAcquireState(对象源,EventArgs e,AsyncCallback cb,对象 extraData)
   在 System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean& completedSynchronously)

没有这方面的代码,它是在 web.config 中配置的

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

编辑:会话状态配置如下:

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

我试图了解是否有 a) 我可以做些什么来在配置中解决这个问题 b) 涉及哪些 DLL,以及最新版本是什么,(所以我可以看看更新是否有帮助) c) 如果其他人看到这个。

它是在我做了很多应用程序更新之后开始的,并且还更新了 Azure 中的缓存大小。因此不确定原因是什么。我不会认为代码更改是负责任的,但我们可能已经更新了一些 DLL,因为我们在开发过程中使用的 PC 之一是新建的。

4

1 回答 1

0

我通过 nuget 更新了 azure.caching 和 azure.configuration,然后重新发布,现在错误已经消失,没有其他代码或配置更改,所以看起来这是某个 DLL 版本之间的不兼容。

于 2012-10-28T16:51:52.780 回答