如何跟踪我的 Web 服务引发的 IIS 500 错误

Posted

技术标签:

【中文标题】如何跟踪我的 Web 服务引发的 IIS 500 错误【英文标题】:How can I trace IIS 500 errors thrown by my webservice 【发布时间】:2009-02-17 15:54:28 【问题描述】:

我已经部署了一个新版本的 ASP.NET Web 服务。当客户端调用此服务时,IIS 日志文件报告错误代码 500。我自己的(测试)可以使用该服务而不会出现任何错误。我在我的 ASP.NET Web 服务中启用了错误记录,但没有记录错误,这让我相信错误不是由我的代码引发的,而是堆栈中“较早”的某个地方。我还检查了 httperr1.log 文件,但那里没有任何相关内容。

问题,如何向 IIS 添加更多错误日志来调查错误?我无权访问客户端。

[更新] 我正在使用 IIS6。我检查了事件日志,没有发现任何东西。

【问题讨论】:

任何 ASP.net 错误,通常都会记录在事件查看器中。你在那里检查过吗? 【参考方案1】:

您使用的是哪个版本的 IIS?

在 IIS7 中,您拥有广泛的跟踪功能。

看看:Troubleshooting Failed Requests Using Tracing in IIS 7.0

【讨论】:

【参考方案2】:

如果您在 IIS6 上,来自 Microsoft 的DebugDiag 2.0 是您想要使用的明确工具。

【讨论】:

“抱歉。此下载不再可用。” 已将其更新为 DebugDiag 2.0。该链接将来也可能断开; debugdiag.com 或blogs.msdn.com/b/debugdiag 可能更耐用。【参考方案3】:

您的日志文件是什么格式的? IIS 格式通常包含来自特定请求的错误消息,而默认格式不包含。

【讨论】:

【参考方案4】:

如果您从本地主机上自动生成的代理运行 webMethod,您可以在崩溃时看到堆栈跟踪转储。

【讨论】:

以上是关于如何跟踪我的 Web 服务引发的 IIS 500 错误的主要内容,如果未能解决你的问题,请参考以下文章

Web项目Bin目录下的文件改动会引发Application_End事件,IIS会回收线程

如何使用 C# 中的 Windows 服务跟踪给定进程是不是引发异常

ASP.NET - 部署问题 - 通过 Web.Config 启用堆栈跟踪/跟踪侦听器日志以查找内部服务器 500 错误的原因

IIS 将 ASP.NET 5 BETA 8 站点部署到 IIS 会出现 HTTP 错误 500.19 - 内部服务器错误

即使包含 PDB 文件,堆栈跟踪中也缺少行号

如何在 IIS 中授予 Web api 应用程序写入权限?