2010-02-22 79 views
1

我有一個WCF服務作爲Windows服務託管。託管它的服務器正在運行IIS6。與WCF webservice的連接收到503錯誤

每隔一段時間,客戶都會報告503服務不可用錯誤。我在服務器端看不到任何問題:我可以看到服務本身的日誌記錄,應用程序或系統事件日誌中沒有條目。

客戶端重試並且通常會成功,因此除了向負責客戶端應用程序的開發人員建議他們在代碼接收到503錯誤時自動重新嘗試以外,是否有一種簡單方法可以讓我的進程監視IIS以及被告知其反應導致錯誤?

所以我的一些事情之一後我:

  1. 我能有WCF過程調用到IIS要獲得狀態代碼?
  2. 我可以讓IIS服務在事件日誌(或使用回調函數)中報告503錯誤以便以某種方式通知WCF進程嗎?
  3. 我應該只是得到客戶端代碼來處理這種情況,畢竟重試通常是成功的。

回答

2

當您將WCF服務作爲Windows服務託管時,不再依賴於IIS。我猜測的唯一通用部分是協議棧HTTP.SYS。我建議你激活登錄到服務配置文件,這將給你豐富的信息:

<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
      <listeners> 
       <add name="sdt" 
        type="System.Diagnostics.XmlWriterTraceListener" 
        initializeData= "WcfDetailTrace.svclog" /> 
      </listeners> 
     </source> 
    </sources> 
</system.diagnostics> 

,然後用SvcTraceViewer.exe分析生成的日誌數據。