【问题标题】:Fiddler exception different than C# exceptionFiddler 异常不同于 C# 异常
【发布时间】:2017-05-01 20:24:49
【问题描述】:

我们联系 Azure 网络服务以发送某些信息。

当我从 C# 发送请求时,异常会从发送端提供堆栈跟踪。

当我从 Fiddler 发送请求时,异常会从接收端提供堆栈跟踪。

我想在日志中获取接收方堆栈跟踪,因为它更有用。关于如何做到这一点的任何想法?据我所知,Fiddler 和 C# 一样使用 HttpRequest

C# 代码:

HttpWebRequest r = (HttpWebRequest)WebRequest.Create(Adrewss);
...

HttpWebResponse response = (HttpWebResponse)r.GetResponse();

catch (Exception ex)
{
     logEntry.Details = ex.ToString();

如果需要更多信息,请告诉我!

所以 C# ex =

500) 内部服务器错误。 在 System.Net.HttpWebRequest.GetResponse()

提琴手前:

{"Post":"System.NullReferenceException: 对象引用未设置为对象的实例。\r\n 在 Test.Gateway.Models.Process.Transformer.GetTypeCode(String Type)\r\n 等

【问题讨论】:

  • 您尝试访问的 URL 是什么
  • Azure Web 服务的 URL

标签: c# exception fiddler


【解决方案1】:

Fiddler 根本不使用 HTTPWebRequest,它与原始套接字通信。我猜您是在 Fiddler 中显示来自响应正文的原始文本,而您依赖 .NET 代码中的异常(而不是响应正文文本)。

【讨论】:

  • 正确,使用以下代码修复它: if(ex is WebException) { var webEx = (WebException)ex; if (webEx.Status == WebExceptionStatus.ProtocolError) { using (Stream responseStream = webEx.Response.GetResponseStream()) using (StreamReader responseReader = new StreamReader(responseStream)) { additionalErrorInfo = responseReader.ReadToEnd(); }
猜你喜欢
  • 2012-06-17
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
相关资源
最近更新 更多