2

我将我的 Azure Web 角色项目从 SDK v1.8 更新到 SDK v2.5,并且角色内缓存似乎不再起作用。我看到以下错误

ErrorCode ERRCA0017 :SubStatus ES0006:有一个临时故障。请稍后重试。(指定的一个或多个缓存服务器不可用,可能是由于网络或服务器繁忙。对于本地缓存集群,还要验证以下条件。确保已为此客户端帐户授予安全权限,并检查 AppFabric所有缓存主机上的缓存服务都允许通过防火墙。服务器上的 MaxBufferSize 必须大于或等于客户端发送的序列化对象大小。)。附加信息:客户端试图与服务器通信:net.tcp://10.175.252.32:20004/。---> System.Net.Sockets.SocketException: 无法建立连接,因为目标计算机在 Microsoft.ApplicationServer.Caching.TcpClientChannelFactory 的 Microsoft.ApplicationServer.Caching.AsyncResultNoResult.EndInvoke() 处主动拒绝了它 10.175.252.32:20004。 TcpConnectionCallback(IAsyncResult result) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ErrStatus errStatus, Guid trackingId, Exception responseException, Byte[][] payload, EndpointID destination) 在 Microsoft。 Microsoft.ApplicationServer.Caching.SocketClientProtocol 处的 ApplicationServer.Caching.SocketClientProtocol.ExecuteApi(IVelocityRequestPacket 请求,IMonitoringListener 侦听器)。

这是 app.Config 设置

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="WorkerRole" />
  </dataCacheClient>
</dataCacheClients>

这是我项目中的包

<package id="WindowsAzure.ServiceBus" version="2.5.3.0" targetFramework="net45" />
<package id="WindowsAzure.Storage" version="4.2.1" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Caching" version="2.5.0.0" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.3" targetFramework="net45" />
<package id="EnterpriseLibrary.TransientFaultHandling.Caching" version="6.0.1304.0" targetFramework="net45" />

即使在模拟器上,我也看到了同样的错误(没有附加信息)。WinDebug 不适用于 Azure 角色(它打开到错误状态)。

任何帮助将不胜感激

4

1 回答 1

0

这个问题是一个老问题(但仍然相关),但我偶然发现了它,只想添加答案,以防其他人得到这个......

问题在于 Windows Azure 缓存与 SDK 紧密相关。因此,如果您使用它并更新了 SDK,您还必须将 Windows Azure 缓存更新到最新版本。

NuGet 包是“Microsoft.WindowsAzure.Caching”。

我总是建议在 SDK 更新后重新映像您的虚拟机,以确保一切正常。我有一个问题,我更新了现有的虚拟机,因此有 2 个版本的 SDK。为 Windows 更新更新虚拟机时,只有 1 个版本的 SDK 可用并且缓存失败。

于 2015-08-04T13:28:16.760 回答