我正在從Silverlight Windows Phone 7應用程序中調用Web服務,如果Web服務可用,它可以正常工作。如果Web服務不可用,則會捕獲未處理的異常,但我自己似乎無法捕捉到它。我嘗試如下:Windows Phone 7,silverlight - 如何在調用異步Web服務時捕獲EndpointNotFoundException?
//Get list of providers from Webservice
RSAServiceClient proxy = new RSAServiceClient();
proxy.GetSuppliersCompleted += new System.EventHandler<GetSuppliersCompletedEventArgs>(ProxyGetSuppliersCompleted);
try
{
proxy.GetSuppliersAsync();
}
catch (EndpointNotFoundException)
{
//TODO: Handle webserice not being available
}
catch (Exception)
{
throw;
}
但這並不捕獲異常和明顯GetSuppliersCompleted從來沒有得到的叫,所以我不能趕上它。
然後,我認爲我可能能夠通過檢查連接狀態(proxy.State)來檢測它,但是儘管Web服務沒有運行,但會返回CommunicationState.Opened。
任何想法,我可以處理這個?
道歉,如果我錯過了一些東西,但我已經搜索並找不到解決方案。
ProxyGetSuppliersCompleted未被調用,因爲EndpointNotFoundException在Visual Studio生成的Reference.cs中被捕獲爲「未處理」。 – Fishcake 2010-11-26 15:33:01
對不起,我誤解了。因爲在調試Visual Studio時在Reference.cs中發生故障,所以我沒有繼續。如果我繼續執行(或者沒有調試),那麼錯誤確實在ProxyGetSuppliersCompleted中被捕獲。乾杯。 – Fishcake 2010-11-26 15:47:58
感謝細節Fishcake – alexandrekow 2011-06-08 20:28:29