2014-02-11 17 views
4

我有一個Azure雲服務應用程序,它由一個工作者角色(僅限一個實例)和一個Web角色(多個實例)組成。 Web角色也是Microsoft.WindowsAzure.Caching(版本2.2)in-role co-located緩存集羣所在的位置。我已經Azure的診斷建立在我WadLogsTable我看到這對在生產中每隔幾分鐘警告:Windows Azure In-Role緩存 - 警告:<SimpleSendReceiveModule> DeadServerCallback被稱爲

警告: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角色的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> 

附加說明:

  • 我可能已經嘗試過的屬性設置,每一個可能的結合爲在Web角色的 Web.config中<dataCacheClient>條目和工人角色的App.config中。
  • 雲服務已升級爲使用Windows Azure Tools 2.2版。
  • 我谷歌搜索了一些與這些警告相關的帖子,但似乎大多數人只在計算模擬器中體驗過這一點,而不是像我這樣的生產。儘管如此,我已經嘗試了大部分建議的解決方案,沒有任何幫助。

回答

0

只要你沒有看到任何失敗或超時或服務質量下降,你應該是好的。 deadserver回調應該只是清理舊的未使用的連接。驗證此假設:

在詳細日誌記錄中是否存在其他連接錯誤?你能否看到對這個服務器的最後一個請求是否已經很久了?你有突發性的交通?

相關問題