【问题标题】:Windows Azure In-Role Cache - WARNING: <SimpleSendReceiveModule> DeadServerCallback CalledWindows Azure 角色内缓存 - 警告:<SimpleSendReceiveModule> DeadServerCallback Called
【发布时间】:2014-03-08 08:38:50
【问题描述】:

我有一个 Azure 云服务应用,它由一个辅助角色(仅 1 个实例)和一个 Web 角色(多个实例)组成。 Web 角色也是 Microsoft.WindowsAzure.Caching(2.2 版)角色内并置缓存集群所在的位置。我设置了 Azure 诊断程序,并且在我的 WadLogsTable 中,我在生产中每隔几分钟就会看到这对警告:

警告:已调用 DeadServerCallback,服务器 URI:[net.tcp://100.74.158.31:20005],基础异常 - ; TraceSource 'w3wp.exe' 事件

警告:DeadServerCallback:匹配我的服务器,清理待处理的请求; TraceSource 'w3wp.exe' 事件

net.tcp://100.74.158.31:20005 对应于其中一个 Web 角色。警告在 Web 角色之间不时交替出现(即有时会显示为 net.tcp://100.74.158.51:20005)。

请注意,“基础异常-”之后没有任何内容。 WadWindowsEventLogsTable 中也没有相关异常(我知道 Azure 异常日志记录正在工作,因为我偶尔会在该表中看到其他异常)。我相信我也已经打开了所有可能的缓存诊断。

所以我的问题是我看到了所有这些警告,但我不知道为什么,也不知道如何解决这种情况。这些警告似乎并没有导致应用程序崩溃,但它们仍然令人担忧。任何帮助将不胜感激。

这是我的 ServiceConfiguration.cscfg:

<?xml version="1.0"?>
    <ServiceConfiguration serviceName="CloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2013-10.2.2">
      <Role name="WebRole">
        <Instances count="2" />
        <ConfigurationSettings>
          <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XXXXX;AccountKey=XXXXX" />
          <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0}]}" />
          <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="3" />
          <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
          <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XXXXX;AccountKey=XXXXX" />
          <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="3" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="Me" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="XXXXX" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2014-08-05T23:59:59.0000000-07:00" />
        </ConfigurationSettings>
        <Certificates>
          <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="XXXXX" thumbprintAlgorithm="sha1" />
          <Certificate name="www.myapp.com" thumbprint="XXXXX" thumbprintAlgorithm="sha1" />
        </Certificates>
      </Role>
      <Role name="WorkerRole">
        <Instances count="1" />
        <ConfigurationSettings>
          <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="3" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="Me" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="XXXXX" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2014-08-05T23:59:59.0000000-07:00" />
          <Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" />
          <!-- For Windows Azure ServiceManagement. -->
          <Setting name="SubscriptionId" value="XXXXX" />
          <Setting name="ServiceManagementCertificateThumbprint" value="value="XXXXX" " />
          <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XXXXX;AccountKey=XXXXX" />
        </ConfigurationSettings>
        <Certificates>
          <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="XXXXX" thumbprintAlgorithm="sha1" />
          <!-- For Windows Azure ServiceManagement. -->
          <Certificate name="ServiceManagementCertificate" thumbprint="thumbprint="XXXXX" " thumbprintAlgorithm="sha1" />
        </Certificates>
      </Role>
    </ServiceConfiguration>

以下是我的网络角色的 Web.config 的相关部分:

<dataCacheClients>
    <dataCacheClient name="default" connectionPool="true" useLegacyProtocol="false" isCompressionEnabled="false" maxConnectionsToServer="2">
      <autoDiscover isEnabled="true" identifier="WebRole" />
    </dataCacheClient>
  </dataCacheClients>

<cacheDiagnostics>
    <crashDump dumpLevel="Full" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />
  </cacheDiagnostics>

以下是我的工作角色 App.config 的相关部分:

<dataCacheClients>
    <dataCacheClient name="default" connectionPool="true" useLegacyProtocol="false" isCompressionEnabled="false" maxConnectionsToServer="2">
      <autoDiscover isEnabled="true" identifier="WebRole" />
    </dataCacheClient>
  </dataCacheClients>
  <cacheDiagnostics>
    <crashDump dumpLevel="Full" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />
  </cacheDiagnostics>

补充说明:

  • 我可能已经为网络角色中的&lt;dataCacheClient&gt; 条目尝试了所有可能的属性设置组合 Web.config 和辅助角色的 App.config。
  • 云服务已升级为使用 Windows Azure 工具 2.2 版。
  • 我在 Google 上搜索并找到了一些与这些警告相关的帖子,但似乎大多数人只在计算模拟器中遇到过这种情况,而不是像我一样在生产环境中遇到过这种情况。尽管如此,我已经尝试了他们建议的大多数解决方案,但没有任何帮助。

【问题讨论】:

    标签: c# .net azure


    【解决方案1】:

    只要您没有看到任何故障或超时或服务质量下降,您就应该很好。 deadserver 回调应该只是清理旧的未使用的连接。验证这个假设:

    详细日志记录中是否发生任何其他连接错误?你能看看这个服务器的最后一个请求是不是很久以前了?你有突发流量吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 2013-12-20
      • 2015-02-21
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多