2010-03-18 63 views
4

我在現有的.NET 2.0 Web服務中調用.NET 2.0 Web服務。如果發生超時,我想知道web方法拋出什麼異常。我已將Web服務超時設置爲比默認90秒更低的值,並且如果超時發生,我想添加業務邏輯。如果我使用的Web服務超時,會拋出什麼異常?

[System.Net.WebException][1]我應該看的例外嗎?

回答

1

你應該尋找一個TimeoutException

時分配給進程或操作的時間已經過期時引發的異常。

+0

在Web服務的情況下它能正常工作嗎? – 2010-03-18 15:35:30

+1

它不適用於Web服務。捕捉[WebException](http://msdn.microsoft.com/en-us/library/system.net.webexception(v = vs.110).aspx)將會執行。 – broadband 2014-01-10 09:01:35

7

這種取決於您正在使用的Web服務的哪個「版本」。

使用WCF,你實際上會得到一個TimeoutException。如果您試圖處理超時,通常也應該處理CommunicationException。有時我也看過FaultException,雖然技術上不應該發生(但它偶爾也會發生)。 FaultExceptionCommunicationException的後代,因此您無需單獨處理它,只需知道它可能會發生即可。

在ASMX中,您通常會得到一個包裝SoapException,您需要檢查InnerException屬性以查看真正出錯的地方。

使用WSE,您會看到另一個例外,ResponseProcessingException,對此您必須再次檢查InnerException以瞭解詳細信息。

+0

我正在使用.NET 2.0 web服務 – 2010-03-18 15:50:33

+0

@BT:* .NET 2.0 *不是一種Web服務,它是一個Framework版本。假設您的意思是ASMX Web服務,請參閱第三段。 – Aaronaught 2010-03-18 16:09:29

+0

謝謝!我認爲InnerException也是一種類型的exceptio,所以我的問題仍然存在,我怎麼知道它是超時異常,我是指什麼類型的內部異常,我應該看看? – 2010-03-18 16:35:05

相關問題