2

在 Windows 7 中,我正在尝试设置自定义错误页面。一个用于 404,一个用于 500,一个用于所有其他错误(客户端或服务器端),这些错误是用户在某些事情超时时可能遇到的,或者在 asp 编译时出现故障。

404.htm
500.htm
error.htm

只是非常简单的 html 页面,它会说错误,而没有像默认值那样的技术。这篇文章这篇文章似乎在谈论在 ASP 中制作错误页面,而不仅仅是获取一个 html 文件并将其设置为自定义错误页面。

在 IIS 中,我使用了不适用于 ASP 的错误页面选择工具

IIS 错误菜单

并将这些信息输入到Edit error pages settings对话中

我输入的完整地址:WebvView\webview_error_pages\error.htm(在我点击侧边的省略号按钮后选择浏览。(我已经缩短了这篇文章的所有这些地址)。

在此处输入图像描述

自定义默认地址有效。但是当我尝试像这样为 404 创建错误页面时:

404对话

404 出现在列表中

并尝试转到一个不存在的页面,我收到这个简单的错误消息:

由于发生内部服务器错误,无法显示该页面。

不是我的。而不是在我设置自定义 404 之前工作的默认值。

我究竟做错了什么?

谢谢!

编辑

此外,我刚刚更改了 ASP 的某些部分并得到了运行时错误,而不是我的自定义错误。有什么办法可以阻止用户看到这些可怕的技术页面?

编辑 这是其他状态菜单的 xml 代码:

    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
        <customErrors defaultRedirect="webview_error_pages/error.htm" mode="On">
        </customErrors>
  </system.web>
    <system.webServer>
        <httpErrors errorMode="Custom">
            <remove statusCode="502" subStatusCode="-1" />
            <remove statusCode="501" subStatusCode="-1" />
            <remove statusCode="500" subStatusCode="-1" />
            <remove statusCode="412" subStatusCode="-1" />
            <remove statusCode="406" subStatusCode="-1" />
            <remove statusCode="405" subStatusCode="-1" />
            <remove statusCode="401" subStatusCode="-1" />
            <remove statusCode="403" subStatusCode="-1" />
            <remove statusCode="404" subStatusCode="-1" />
        </httpErrors>
    </system.webServer>

再次感谢!

4

1 回答 1

6

您没有在 web.config 中执行此操作是否有特定原因?如果您将项目移动到不同的服务器,这将有所帮助,您就不必担心手动配置 IIS。此外,在 web.config IMO 中配置它更容易一些。

在 system.web 下的 customErrors 节点中,确保您有

        <customErrors mode="On" defaultRedirect="~/Error/" >
           <error statusCode="404" redirect="~/404Redirect/"/>
        </customErrors>

显然,您可以替换任何您想要的重定向页面。

于 2012-12-06T02:55:37.700 回答