2012-12-10 47 views
5

我有一個MyServiceBase繼承自ServiceBase的類。 Inside MyService我的WCF服務有一個ServiceHost,它只有一個IsOneWay = true屬性的方法。我用這個代碼初始化:如何找出ServiceHost Faulted事件的原因

host = new ServiceHost(typeof(MyService)); 
host.Opened += new EventHandler(host_Opened); 
host.Closed += new EventHandler(host_Closed); 
host.Faulted += new EventHandler(host_Faulted); 
host.UnknownMessageReceived += new EventHandler<UnknownMessageReceivedEventArgs>(host_UnknownMessageReceived); 
host.Open(); 

有時主機引發斷陷事件,但在* host_Faulted *方法的EventArgs總是空的,所以我無法找出它的原因。 請幫忙。 感謝。

+0

我試圖使用僞變量(http://msdn.microsoft.com/en-us/library/ms164891.aspx),但我沒有在本地窗口中看到$異常變量 – Alekstim

回答

2

此鏈接可能證明是有用的的WCF故障處理和調試更好的方法:

How do I prevent a WCF service from enter a faulted state?

因此,而不是回答您的具體問題,我建議你達到要求的更好的方法。

+0

謝謝。這個鏈接幫了我很多 – Alekstim

+0

沒問題。很高興我的建議爲你工作。 – c0D3l0g1c

+3

這是有幫助的,但沒有回答實際問題。如何獲得引起服務故障的異常堆棧? – David

0

我今天遇到這個問題。通過啓用WCF追蹤,它有幫助,但沒有給我理由。經過大量的調試工作,我發現真正的原因是:消耗WCF服務的客戶端崩潰了。由於客戶端是一個封裝的Windows服務,並且其狀態仍處於「運行」狀態。

所以我的建議是:嘗試/捕獲客戶端應用程序中的所有代碼塊。

相關問題