gpt4 book ai didi

asp.net - 如何获得干净的 ASP.Net 错误页面?

转载 作者:行者123 更新时间:2023-12-04 13:33:21 26 4
gpt4 key购买 nike

当我在 IIS(6.0) 上的 ASP.Net(3.5) 站点出现应用程序错误时,我得到了肮脏的 HTML 代码。

我想要自动生成的 XHTML 代码 相反,对于解析答案的 Web 服务会很好......(我对编写自定义页面不感兴趣)。

有没有办法指定它?

编辑:示例

例如,为 404 错误生成的页面,我想要干净的 XHTML 代码,但我不想自己编写,ASP.Net 模块可以做到吗?

<html>
<head>
<title>La ressource est introuvable.</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
</style>
</head>

<body bgcolor="white">

<span><H1>Erreur du serveur dans l'application '/</b>/MyVirtualDirectory'.<hr width=100% size=1 color=silver></H1>

<h2> <i>La ressource est introuvable.</i> </h2></span>

<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

<b> Description : </b>HTTP 404. ...
<br><br>

<b> URL demandée: </b>/MyVirtualDirectory/MyService.aspx<br><br>

<hr width=100% size=1 color=silver>

<b>Informations sur la version :</b>&nbsp;Version Microsoft .NET Framework :2.0.50727.3053; Version ASP.NET :2.0.50727.3634

</font>

</body>
</html>

编辑

我猜,上面的 HTML 是由一个 ASPX 页面生成的,有什么地方可以找到吗?为了获得灵感并将其翻译成 XHTML,我将使用@Remko 3rd 解决方案来指定自定义错误页面。

最佳答案

有几种方法可以处理 ASP.NET 中的错误并控制响应的内容。
注意:所有方法都要求您编写自己的自定义 XHTML 代码(尽管您说您对编写自定义页面不感兴趣)

  • 在页面级别:将 Page_Error 事件处理程序添加到您的页面。
    public void Page_Error(object sender,EventArgs e)
    {
    Exception objErr = Server.GetLastError().GetBaseException();
    Response.Write("<p>Your perfectly formatted XHTML code.</p>");
    Server.ClearError();
    }

    如果您调用Server.ClearError() ASP.NET 不会处理该错误,并且您不会获得默认的错误页面。
  • 在应用程序级别:将 Application_Error 事件处理程序添加到 Global.asax。
    protected void Application_Error(object sender, EventArgs e)
    {
    Exception objErr = Server.GetLastError().GetBaseException();
    Response.Write("<p>Your perfectly formatted XHTML code.</p>");
    Server.ClearError();
    }
  • 在您的 web.config 中指定自定义错误页面文件
    <customErrors mode="On" defaultRedirect="myperfectxhtmlerror.aspx" >


  • 更详细的解释见: How to create custom error reporting pages in ASP.NET

    关于asp.net - 如何获得干净的 ASP.Net 错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798865/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com