在WCF服务/暂存中调试HTTP 500(内部服务器错误)

时间:2011-11-10 14:14:19

标签: wcf iis-7

我有一些在本地运行良好的WCF服务;客户端可以使用它们,服务器正在按预期将数据放入DB中。问题是,当我将这些部署到临时机时,我只能看到HTTP 500错误。

如何开始调试问题?

鉴于它只是在暂存而不是在我的本地开发机器上,我认为它是某个地方的IIS配置问题。

当我使用Fiddler查看正在发送的内容以及响应的内容时,我可以看到(正如预期的那样)正确的请求数据,只有500作为响应 - 没有进一步的细节。

我对WCF和IIS非常环保,所以它可能是显而易见的;我使用了aspnet_iisreg,部署了我的.svc文件以及来自bin的所有构建的DLL /文件;也许我错过了什么。

我查看了IIS日志,但它们非常吝啬;那里没有错误信息(或者我可能在错误的地方看?)

(比解决具体问题更重要的是弄清楚如何查看有关错误的足够详细信息,以便我自己解决问题。)

编辑:我当然首先检查了事件日志 - 而且令人惊讶的是,没有发现任何异常提及。所以我假设服务至少被调用,并且中间出现了错误。

4 个答案:

答案 0 :(得分:6)

查找错误的第一个位置是服务器上的事件日志。应该有基本信息,为什么不处理请求。如果它与WCF相关,您可以打开WCF tracing并检查生成的日志中的更多详细信息。

答案 1 :(得分:2)

添加:

<httpErrors errorMode="Detailed"/>

在Web.config下:

<system.webServer>

了解更详细的内容。

答案 2 :(得分:1)

事实证明,由于返回了大量数据集,服务器返回了500; WCF对可以返回的数据(和字符串)的大小设置了一些限制,以防止DOS攻击。我通过增加限制和减少返回的数据大小(如果适用)来解决问题。

答案 3 :(得分:0)

如果您的服务帐户密码已过期,则可能会出现“Http 500内部服务器错误”。请确保您在IIS上运行应用程序池的服务帐户没有任何问题。