我在現有的.NET 2.0 Web服務中調用.NET 2.0 Web服務。如果發生超時,我想知道web方法拋出什麼異常。我已將Web服務超時設置爲比默認90秒更低的值,並且如果超時發生,我想添加業務邏輯。如果我使用的Web服務超時,會拋出什麼異常?
是[System.Net.WebException][1]
我應該看的例外嗎?
我在現有的.NET 2.0 Web服務中調用.NET 2.0 Web服務。如果發生超時,我想知道web方法拋出什麼異常。我已將Web服務超時設置爲比默認90秒更低的值,並且如果超時發生,我想添加業務邏輯。如果我使用的Web服務超時,會拋出什麼異常?
是[System.Net.WebException][1]
我應該看的例外嗎?
你應該尋找一個TimeoutException
:
時分配給進程或操作的時間已經過期時引發的異常。
這種取決於您正在使用的Web服務的哪個「版本」。
使用WCF,你實際上會得到一個TimeoutException。如果您試圖處理超時,通常也應該處理CommunicationException。有時我也看過FaultException,雖然技術上不應該發生(但它偶爾也會發生)。 FaultException
是CommunicationException
的後代,因此您無需單獨處理它,只需知道它可能會發生即可。
在ASMX中,您通常會得到一個包裝SoapException,您需要檢查InnerException
屬性以查看真正出錯的地方。
使用WSE,您會看到另一個例外,ResponseProcessingException,對此您必須再次檢查InnerException
以瞭解詳細信息。
我正在使用.NET 2.0 web服務 – 2010-03-18 15:50:33
@BT:* .NET 2.0 *不是一種Web服務,它是一個Framework版本。假設您的意思是ASMX Web服務,請參閱第三段。 – Aaronaught 2010-03-18 16:09:29
謝謝!我認爲InnerException也是一種類型的exceptio,所以我的問題仍然存在,我怎麼知道它是超時異常,我是指什麼類型的內部異常,我應該看看? – 2010-03-18 16:35:05
在Web服務的情況下它能正常工作嗎? – 2010-03-18 15:35:30
它不適用於Web服務。捕捉[WebException](http://msdn.microsoft.com/en-us/library/system.net.webexception(v = vs.110).aspx)將會執行。 – broadband 2014-01-10 09:01:35