【问题标题】:How can I make a custom error page in ASP.NET web-pages with WebMatrix?如何使用 WebMatrix 在 ASP.NET 网页中制作自定义错误页面?
【发布时间】:2013-07-31 23:57:44
【问题描述】:

信不信由你我试图通过简单的 Google 搜索来寻找这个问题的答案,但我没有找到任何东西(用“WebMatrix 自定义错误页面”、“WebMatrix 如何制作自定义服务器端错误页面”进行谷歌搜索"等),但也许我没有使用正确的术语进行搜索...

无论如何,我只是想知道是否有办法(我相信它涉及web.config 文件)显示自定义错误页面而不是 ANY 服务器端错误页面。

我知道有一种方法可以对某些页面(如 404 或 500)执行此操作,但是否可以针对任何服务器端错误创建一个捕获所有页面? (我猜 404 不起作用,因为它必须找到您的网站才能显示任何自定义页面?)

如果这是一个重复的问题,请原谅我,但我缺乏这方面的知识可能导致我没有正确的搜索词来搜索,尽管我也尝试过搜索 SE。

【问题讨论】:

    标签: asp.net web-config webmatrix custom-error-pages asp.net-webpages


    【解决方案1】:

    将以下内容添加到 <system.web> 节点内的 web.config 文件中:

    <customErrors mode="On" defaultRedirect="~/Error.cshtml" />
    

    如果出现任何 ASP.NET 错误,这会将用户重定向到 Error.cshtml(您需要创建)。您可以在开发过程中将mode值更改为RemoteOnly,这样您就可以看到实际的错误信息。

    如果您还想要自定义 404 页面,您可以执行以下操作:

    <customErrors mode="On">
        <error statusCode="500" redirect="~/Error.cshtml" />
        <error statusCode="404" redirect="~/404.cshtml" />
    </customErrors>
    

    【讨论】:

    • 太棒了!谢谢,迈克!我觉得这很容易,但我不知道从哪里开始 :) 如果我想要每个状态代码(不仅仅是 500)都有一个自定义错误页面,但也想要一个自定义 404,它会是什么样子?会不会像这样:&lt;customErrors mode="On"&gt;&lt;error redirect="~/Error.cshtml" /&gt;&lt;error statusCode="404" redirect="~/404.cshtml" /&gt;&lt;/customErrors&gt;
    • 我不确定顺序是否重要,但可能需要先执行更具体的顺序。你可以自己测试一下。
    • 好的,没问题。另外,感谢您向我展示了仅远程选项。这非常有用。不过,我想让您知道(只是为了您回答的准确性),remoteOnly 不起作用,并且“R”实际上必须像RemoteOnly 一样大写。这可能无关紧要,因为无论如何错误页面都会告诉开发人员这一点,但只是认为您可能想知道以防万一您想编辑该花絮。再次感谢!
    • 我还有一个简单的问题:考虑到用户总是远程访问我们的网页,并且只有授权人员应该在我们的服务器上,是否有任何理由(为了良好的实践、容错或任何其他原因)将模式值从"RemoteOnly"切换到"On"
    • 编辑了错字 - 感谢您发现它。如果您不想让有权访问服务器的人看到实际的错误消息,您只需将值设置为On。但是当然,如​​果他们可以访问服务器,他们很可能仍然可以访问错误日志......我怀疑这两种方式对性能有任何重大影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多