【问题标题】:WCF service returns error 500 on /js requestWCF 服务在 /js 请求上返回错误 500
【发布时间】:2011-03-02 02:17:43
【问题描述】:

我有一个 wcf 服务在请求 wcf 支持制作的自动生成的 javascript 时随机开始失败。但是我没有运气找到原因,js 的东西是 wcf 功能集的一部分。所以我不知道它是如何突然开始失败并且在 IIS 被回收之前无法工作的。

http 日志给了我:

2010-06-10 09:11:49 W3SVC2095255988 myip GET /path/myservice.svc/js _=1276161113900 80 - ip browser 500 0 0

所以它是一个错误 500,这是我唯一能弄清楚的事情。事件日志不包含任何信息。

对 /path/myservice.svc 的请求可以正常工作。回收 IIS 后它再次工作,几天后它开始失败,直到我回收 IIS。

     <service
        name="path.myservice"
        behaviorConfiguration="b">
        <endpoint
           address=""
           behaviorConfiguration="eb"
           binding="webHttpBinding"
           contract="path.Imyservice" />
     </service>
     ...
     <endpointBehaviors>
        <behavior name="eb">
           <enableWebScript />
        </behavior>
     </endpointBehaviors>
     <serviceBehaviors>
        <behavior name="b">
           <dataContractSerializer maxItemsInObjectGraph="2147483647" />
           <serviceMetadata httpGetEnabled="true" />
           <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
     </serviceBehaviors>

我在 web.config 设置中也没有发现任何问题。

有什么线索可以找出问题所在吗?

编辑:

只是说清楚 - 是 javascript 的生成失败了,我的代码永远不会被调用。对服务的调用工作正常。

【问题讨论】:

  • 不,它自己消失了。仍然不知道是什么原因造成的,或者是什么让它消失了。

标签: asp.net wcf iis


【解决方案1】:

我建议您在服务中使用enable tracing,并使用Service Trace Viewer Tool 查看生成的日志。仅跟踪错误以保持日志较小。

【讨论】:

  • 它实际上并没有因为我编写的代码而失败。它无法提供我需要做简单代码的 javascript。如果我直接打电话,他们工作正常
  • 这就是我建议您启用跟踪的原因。跟踪不会只记录来自您的代码的错误 - 它会记录所有错误。
【解决方案2】:

您的 WCF 服务似乎引发了异常。您可以在 Global.asax 的 Application_Error 方法中捕获此未处理的异常,而不是将其写入日志文件。

protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError().GetBaseException();
    //TODO: write to log
}

【讨论】:

  • 不,它永远不会进入我的代码。失败的是微软的 javascript 代。对服务的调用工作得很好。如果涉及到这段代码,我会收到一封很好的电子邮件,里面有详细信息,而且不必在这里问:)
猜你喜欢
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
相关资源
最近更新 更多