我號召web服務的方法,它是扔一個403禁止引發WebException ...如何獲取拋出WebException的URI?
System.Net.WebException: 故宮:請求 ,HTTP狀態403失敗。
我有這個錯誤記錄,但我真的很想記錄在日誌消息的URI,所以很容易確定哪個webservice導致問題。
是否有一種簡單的方法從引發的WebException中獲取URI?我查看了屬性列表,我看不到任何會讓我想要的東西。
我號召web服務的方法,它是扔一個403禁止引發WebException ...如何獲取拋出WebException的URI?
System.Net.WebException: 故宮:請求 ,HTTP狀態403失敗。
我有這個錯誤記錄,但我真的很想記錄在日誌消息的URI,所以很容易確定哪個webservice導致問題。
是否有一種簡單的方法從引發的WebException中獲取URI?我查看了屬性列表,我看不到任何會讓我想要的東西。
您可以訪問SOAP客戶端代理對象(SoapHttpClientProtocol
類型)上的Url
屬性。
如果您在代碼中使用一種方法調用兩種不同的Web服務,只需嘗試一下{},以捕捉Web服務調用,並使用有問題的Web服務的Url屬性引發相應的自定義Exception
。
喜歡的東西:
string url = client.Url;
try
{
client.MyWebServiceCall();
url = client2.Url;
client2.MyWebServiceCall2();
}
catch (Exception ex)
{
throw new Exception("Webservice call failed. Url: "+url+", Error:"+ex.Message,ex);
}
我正在將此標記爲答案,因爲我沒有意識到webservice有權訪問Url屬性...並且由於我的代碼在Web服務周圍沒有複製Url的包裝,所以我無法訪問它。我已經更改了我的代碼,以便在包裝的web服務上提供Url,並確保我的try-catch只在一個服務調用周圍。 – mezoid 2009-12-07 02:36:26
可以肯定你是不是做了呼叫服務通過一個需要認證的webproxy。你會得到這個(或者可能是401)的錯誤,並把你的頭髮拉出來(像我一樣)試圖找出失敗發生的地方。我沒有意識到發生了什麼情況,直到我進行了網絡跟蹤,發現請求正在打到我們的出站身份驗證代理,並且該請求沒有憑據,並且被退回。
你不應該使用URI來撥打電話嗎? – mauris 2009-12-06 23:27:49
我的方法使用了兩個Web服務,它們都可以拋出WebException ....因此,我想從異常中訪問URI ... – mezoid 2009-12-06 23:30:49
因此,您在自己的內部調用了2個webservice方法網絡服務? – 2009-12-06 23:33:36