解决方案:在IIS7中自定义404页面 却返回500错误的解决方案

博主从虚拟主机搬到VPS以后使用的是IIS7,今天想设置一下自定义404页面,很快就设置好了,但是遇到没有的文件,返回的并不是我的404页面,返回的是500代码,在网上搜索一圈,很快就找到了一篇博文,来自 AsiaTech 微软全球技术支持中心互联网开发支持团队 官方博客的一篇文章,原文:http://blogs.msdn.com/b/asiatech_zh-cn/archive/2010/12/27/iis7-404-500-19.aspx IIS给我们返回的是500.19 - Internal Server Error Absolute physical path "driver:path" is not allowed in system.webServer/httpErrors section in web.config file. Use relative path instead. 微软给出了两个解决方案,不过我自己使用第一个解决方案没有成功,我是使用的第二个 方案1:
  • 1. 在ApplicationHost.config文件中将<system.webServer> <httpErrors>的allowAbsolutePathsWhenDelegated设置为"true"。[code]<br />&lt;system.webServer&gt;<br /><br />  ...<br /><br />&lt;httpErrors allowAbsolutePathsWhenDelegated="true"&gt;<br /><br />      &lt;error statusCode="401" prefixLanguageFilePath="%SystemDrive%inetpubcusterr" path="401.htm" /&gt;<br /><br />      &lt;error statusCode="403" prefixLanguageFilePath="%SystemDrive%inetpubcusterr" path="403.htm" /&gt;<br /><br />      &lt;error statusCode="404" prefixLanguageFilePath="%SystemDrive%inetpubcusterr" path="404.htm" /&gt;<br /><br />      &lt;error statusCode="405" prefixLanguageFilePath="%SystemDrive%inetpubcusterr" path="405.htm" /&gt;<br /><br />....<br /><br />     &lt;/httpErrors&gt;<br />  &lt;/system.webServer&gt;<br />[/code]
  • 2.重启IIS。
方案2 1. 在IIS Manager中,找到Features Views->Management Area,双击"Feature Delegation"。选择Error Pages并单击Read Only,如下图。IIS7中的自定义 404页面错误 2. 在C:inetpubwwwroot或您的任何网页应用程序的物理目录下,打开web.config文件,移除以下部分。 [code]</p><p>&lt;handlers accessPolicy="Read, Script" /&gt;</p><p>        &lt;httpErrors&gt;</p><p>            &lt;remove statusCode="404" subStatusCode="-1" /&gt;</p><p>            &lt;error statusCode="404" prefixLanguageFilePath="" path=" E:Temperror404.html " responseMode="File" /&gt;</p><p>&lt;/httpErrors&gt;</p><p>[/code] 如果在config文件中没有其他配置,您可以直接删除由IIS为delegation Read/Write生成的web.config文件。 3. 重启IIS。 更多信息 如何在IIS7中进行自定义404页面设置。您能通过以下步骤达到该目的:
  • 1. 创建一个名为custom404.html的文件,并保存至您的网页目录(一般情况下为c:inetpubwwwroot)。
  • 2. 打开Internet Information Services (IIS) Manager。
  • 3. 在Connections窗口内(左边),展开相关节点至某个您想要进行自定义错误配置的站点,并选定该站点。
  • 4. 在中间窗口的底部,单击Features View。
  • 5. 在中间窗口,双击Error Pages。
  • 6. 双击Status Code 404。
  • 7. 在Edit Custom Error Page对话框中,
  • a. 在"Insert content from static file into the error response"域中输入物理路径。当出现找不到页面的情况时,就会返回http 404错误并显示自定义的404错误页面。
  • b. 在"Exectute a URL on this site"域中,输入绝对路径。在本实例中,输入/custom404.html。当出现找不到页面的情况时,就会返回http 200错误并显示自定义的404错误页面。 IIS7中的自定义 404页面错误
  • 8. 点击OK。
参考 HTTP Errors http://www.iis.net/ConfigReference/system.webServer/httpErrors