如何在没有任何内容写入事件日志时诊断IIS 7.5上的500内部服务器错误?

我刚刚部署了一个更新到现有的ASP.NET MVC3网站(它已经configuration),我得到了死亡的IIS蓝屏

HTTP错误500.0 – 内部服务器错误
页面无法显示,因为发生了内部服务器错误。

然而; 应用程序事件日志中没有任何内容显示,我期望看到该条目的(更多)详细描述。

我怎么去诊断这个问题呢?

    看看IIS7的失败的请求追踪function:

    在IIS 7中使用跟踪对故障请求进行故障排除
    解决失败的请求跟踪问题

    我会做的另一件事是调整您的<httpErrors>设置,因为IIS可能会从pipe道的进一步吞咽错误消息:

     <configuration> <system.webServer> <httpErrors existingResponse="PassThrough" /> </system.webServer> </configuration> 

    如果站点使用经典ASP编写,那么请确保在ASPconfigurationfunction中打开“ 发送到浏览器的错误”设置:

    在这里输入图像描述

    最后,如果您使用的是Internet Explorer,请确保您已closures在高级设置中显示友好的HTTP错误消息 (尽pipe我怀疑您已经完成了这项工作,或者正在使用其他浏览器)。

    在我的情况下:

    • 事件日志是空的。
    • web.config没有损坏 – 通过在本地机器上使用/使用inetmgr

    最后…

    • 检查IIS日志显示这样的请求

    ...Chrome/57.0.2987.133+Safari/537.36 500 19 5 312

    关键是:

    sc-status sc-substatus sc-win32-status 500 19 5

    这与一些谷歌search指向我没有读取权限到www文件夹的IIS_USRS

    最明显的问题是Web应用程序文件夹上的NTFS权限不正确或为零。 因此,请确保为该网站提供服务的帐户具有正确的权限。 如果没有适当的NTFS权限的networking目录,无论你放在web.config中,因为它永远不会被读取。

    快速检查可以给每个人充分的权利 – 如果网站开始工作,那么你知道这是一个权利问题,然后你可以设置适当的权利分配给一个更合适的帐户。

    如果从IIS6升级,那么它可能是6的web.config工程之一,但不是在IIS 7.5中…双击该网站的IIS中的所有图标,您可能会收到一个错误的格式必须在其他部分之下…)

    我遇到了与Azure Web App相同的问题。 在本地debugging时,从ajax调用返回的错误消息(Json)完全返回给浏览器。 但是,一旦部署到Web应用程序,邮件被吞下,并返回一个默认的500错误消息。 所以我不得不在web.config httpErrors标签中明确地将existingResponsevalue设置为PassThrough