【问题标题】:Bad request, zero length response: where is the WCF log, where to investigate?错误请求,零长度响应:WCF 日志在哪里,在哪里调查?
【发布时间】:2013-01-11 13:00:13
【问题描述】:

我有一个由 AJAX JavaScript 调用的 WCF 自托管服务。 在某些情况下,响应为 Bad Request,响应长度为 0。

到目前为止我做了什么:

  • 用 fiddler 检查 req/resp:请求似乎没问题,响应是 http 400 'Bad Request' 长度为 0,所以没有信息,没有堆栈跟踪等。
  • 尝试在我的服务实现中设置断点:服务方法甚至没有被调用
  • 尝试在 VS 菜单 Debug/Exceptions 中设置所有异常:未触发任何异常。

  • 现在如何调查?

  • 自托管服务正在写什么日志?
  • 还有其他想法吗?

【问题讨论】:

  • 可能与网络相关,因为服务没有被调用?将它托管在 IIS/WAS 中启用监控,看看是否可以重现错误?
  • 抱歉,规格不准确:我有一个长度为 0 的 http 400 'Bad Request',所以没有错误信息,也没有 statck 跟踪。

标签: .net wcf self-hosting


【解决方案1】:

您可以启用 WCF 跟踪以跟踪该错误。只需将以下 sn-p 添加到您的应用程序配置文件中:

<configuration>

  <system.diagnostics>

    <sources>

      <source name="System.ServiceModel"
              switchValue="Verbose, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="traceListener"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "c:\Traces.svclog" />
        </listeners>
      </source>

    </sources>

  </system.diagnostics>

</configuration>

这将创建一个日志文件,其中包含每个请求的附加信息。您可以使用Service Trace Viewer Tool 打开日志文件,它提供了一个不错的 GUI。

【讨论】:

  • 谢谢回答。我认为会有/应该有与 IIS 日志类似的日志。无论如何,谢谢
  • 我没有尝试,因为我发现之前的错误是什么......(超出了请求的最大大小...... :-(
猜你喜欢
  • 2016-12-31
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
  • 2015-08-31
  • 2016-06-04
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多