Skip to main content
 首页 » 编程设计

c#之如何获取抛出 WebException 的 URI

2024年01月13日29softidea

我在 Web 服务上调用一个方法,它抛出 403 Forbidden WebException...

System.Net.WebException: The request failed with HTTP status 403: Forbidden.

我已经记录了这个错误,但我真的很想在日志消息中记录 URI,这样可以很容易地确定是哪个网络服务导致了问题。

有没有一种简单的方法可以从抛出的 WebException 中获取 URI?我查看了属性列表,但看不到任何可以让我得到我想要的东西。

请您参考如下方法:

您可以访问 SOAP 客户端代理对象(SoapHttpClientProtocol 类型)的 Url 属性。

如果您从代码中的一个方法调用两个不同的 Web 服务,只需在 Web 服务调用周围放置一个 try {} catch 并使用有问题的网络服务。

类似于:

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); 
}