c# - 如何获取抛出 WebException 的 URI?

标签 c# .net web-services uri system.net.webexception

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

关于c# - 如何获取抛出 WebException 的 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856994/

相关文章:

c# - 加密现有的 zip 文件

c# - 找到正在调试我的进程的 Visual Studio 的 pid

.net - 我应该使用枚举还是查询数据库中的表?

asp.net - 如何从 ASP.NET Web 服务实现自定义 JSON 序列化?

c# - 带有 camlQuery 的 Sharepoint 2010 客户端对象模型 - 文件下载但无内容/0 字节

c# - 以编程方式更改 Windows 10 锁屏背景(在桌面上)

c# - 为什么 PrintPreview 与纸质打印不完全相同?

c# - 在 Windows 2008 Server 上通过 TFS 进行 WatiN

带有 java 后端 Web 服务的 C# 独立应用程序

android - 在 phonegap 中自动向服务器发送请求