如何在Windows 7专业版IIS 7.5本地安装上使用自己的asp页面作为404错误页面

时间:2011-06-23 08:43:39

标签: iis redirect iis-7.5

我有以下配置:

运行 Windows 7 Pro
运行本地 IIS 7.5 (用于Web开发)

编辑主机文件以便能够使用http://www.sitestepper.dev

inetpub / wwwroot / staplijst 子文件夹中的网站构建

可以使用http://www.sitestepper.dev/staplijst/whatever-page.htm

查看网站

我想在请求未知页面时调用http://www.sitestepper.dev/p.asp页面。此技术在此网站的部署版本上运行良好(部署在运行IIS 6的Windows 2003服务器上 - 不确定7但是它是使用Windows 2003服务器部署的版本)。

我尝试过(在编辑自定义错误对话框中):

  • 在此网站上执行网址: /staplijst/p.asp

  • 回复302重定向: http://www.sitestepper.dev/staplijst/p.asp

我在“默认网站”的属性中尝试了此操作,我在staplijst级别尝试了此操作。

  • 甚至尝试使用没有/staplijst的值。

每次更改后重新启动默认网站。甚至停止/启动了Web服务。

但似乎没有任何效果,我不断收到“应用程序中的服务器错误”DEFAULT WEB SITE“',HTTP错误404.0错误。


我在这里错过了什么 - 可能是显而易见的事情,但是我没有看到它?

2 个答案:

答案 0 :(得分:1)

我刚刚配置了以下内容来重现您的设置:

web.config文件中:

<configuration>
    <system.webServer>
        <httpErrors>
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" 
                   prefixLanguageFilePath="" 
                   path="/p.asp" 
                   responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

在网站的根目录中,我有一个名为p.asp的简单脚本执行Response.Write "Hello World"

如果我浏览到不存在的页面p.asp被重定向到,我看到“Hello World”。

如果我在web.config中使用以下内容:

<httpErrors>
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" 
           prefixLanguageFilePath="" 
           path="http://www.sitestepper.dev/p.asp" 
           responseMode="Redirect" />
</httpErrors>

这会按预期重定向到p.asp,我再次看到“Hello World”。

我唯一认为错误的是您说p.asp生活在网站的根目录中:http://www.sitestepper.dev/p.aspExecuteURLRedirect响应模式路径中包含/staplijst

答案 1 :(得分:1)

要回答我自己的问题:我需要在相关网站的Error response中将Custom error pages设置为Edit feature settings...才能生效。它被设置为“本地请求的详细错误和远程请求的自定义错误页面”。

我从来没有在以前版本的IIS中执行此操作,但可能在这些版本中暗示了这一点。或者主机设置www.sitestepper.dev可能导致页面始终表现为本地请求 - 无论如何,这已在IIS 7.5中发生了变化我确定。

我没有看到'Kev'的答案就搜索了这个解决方案。通常,如果使用提供的用户界面面板找到解决方案,我倾向于不直接编辑配置文件。

我会接受他的回答作为解决方案。

Custom error pages need to be set to execute an url for 404 errors