我刚刚部署了一个更新到现有的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
最后…
...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
。