当我在IIS(6.0)上的ASP.Net(3.5)站点上出现应用程序错误时,我得到了脏HTML代码。
我希望有自动生成的XHTML代码,对于解析答案的网络服务会很好...(我对编写自定义页面不感兴趣)。
有没有办法指定它?
编辑:示例
以下是例如,生成的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> Version Microsoft .NET Framework :2.0.50727.3053; Version ASP.NET :2.0.50727.3634
</font>
</body>
</html>
修改
我猜,上面的HTML是由ASPX页面生成的,有没有我可以找到它的地方?要获得灵感并在XHTML中翻译,我将使用@Remko 3rd解决方案指定自定义错误页面。
答案 0 :(得分:10)
有几种方法可以处理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
答案 1 :(得分:3)