设置:Windows 7,IIS7。我正在开发一个通过本地IIS服务器查看的应用程序,而不是内置的调试Web服务器。所以我的应用网址是http://localhost/foo/bar.aspx
。我的web.config中有 no <customErrors>
部分,我没有更改IIS中的任何设置。
如果发生任何错误,我总会收到以下错误屏幕:
HTTP错误500.19 - 内部服务器错误
web.config文件的C:\inetpub\custerr
部分中不允许使用绝对物理路径“system.webServer/httpErrors
”。改为使用相对路径。
这是我的applicationhost.config
内容:
<httpErrors errorMode="Custom" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
<error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" />
<error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" />
<error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" />
<error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" />
<error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" />
<error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" />
<error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" />
<error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" />
<error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" />
</httpErrors>
如何摆脱此配置错误,以便查看详细错误?
答案 0 :(得分:30)
过去几天我一直在处理这个问题,并找到了解决方案。 Web.Config文件可能指定其中一个错误页面的绝对路径。这可能不是您正在测试的应用程序的Web.Config。对我来说,这是该网站的Web.Config文件。
如果您发现有问题的Web.Config文件,则可以删除绝对路径并解决问题。
更简单的解决方案是更改ApplicationHost.Config文件,将allowAbsolutePathsWhenDelegated
属性设置为true
:
<httpErrors allowAbsolutePathsWhenDelegated="true" errorMode="Custom"
lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
答案 1 :(得分:2)
我在域控制器上安装Active Directory证书服务时遇到了同样的问题。它们都使用端口443.我将证书服务的一个更改为服务器IP地址,并将交换服务器保留为未分配状态。这解决了我的问题。
答案 2 :(得分:1)
我在IIS 8.5中遇到了同样的问题。修复是删除引用自定义错误页面的web.config文件(位于网站的根目录中)中的任何条目。当我尝试更改自定义页面时,系统创建了条目。
答案 3 :(得分:1)
帮我解决此错误的原因是将allowAbsolutePathsWhenDelegated
设置为true。
转到 IIS&gt;配置编辑器&gt;在部分类型:system.webServer / httpErrors
并将allowAbsolutePathsWhenDelegated
设置为 true 。重置 IIS 以获得良好衡量标准。