2012-12-10 3 views
6

IIS(6.0)上のASP.Net(3.5)サイトでアプリケーションエラーが発生すると、HTMLコードが汚くなります。クリーンASP.Netのエラーページを取得する方法?

私は自動生成されたXHTMLコードを持っています。それは答えを解析するWebサービスにはいいです...(私はカスタムページを書くことに興味がありません)。

指定方法はありますか?

編集:ここでは例

は、例えば、404エラーのために生成されたページは、私が代わりにクリーンなXHTMLコードを希望ですが、私はそれを自分自身を記述する必要はありません、ASP.Netモジュールは、それを行うことができます?私は推測

は、上記のHTMLがASPXページにより生成されたEDIT

<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> 

、私はそれを見つけることができる場所はありますか? XHTMLでそれを受け入れて翻訳するには、@エラーコの第3の解決策を使用してカスタムエラーページを指定します。

+0

例を挙げてください –

+0

他のWebサービスに対して個別の応答タイプはありませんか? –

答えて

10

ASP.NETのエラーを処理し、応答の内容を制御するいくつかの方法があります。 注:すべてのメソッドは(カスタムページを書くことに興味がないということを、あなたの発言にもかかわらず)独自のカスタムXHTMLコードを記述する必要がページレベルで

  1. :あなたのページへのPage_Errorイベントハンドラを追加します。あなたがServer.ClearError()を呼び出す場合

    public void Page_Error(object sender,EventArgs e) 
    { 
        Exception objErr = Server.GetLastError().GetBaseException(); 
        Response.Write("<p>Your perfectly formatted XHTML code.</p>"); 
        Server.ClearError(); 
    } 
    

    エラーがASP.NETによって処理されず、デフォルトのエラーページを取得することはできません。

  2. アプリケーションレベルで: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(); 
    } 
    
  3. あなたweb.configファイルでカスタムエラーページを指定

    <customErrors mode="On" defaultRedirect="myperfectxhtmlerror.aspx" > 
    

参照:How to create custom error reporting pages in ASP.NET上記の解答にかなりのスポット以外

+0

ありがとう、私は、デフォルトのエラーページを見つけてそれをXHTMLに変換するときに3番目の解決策を使用すると思います(EDITを参照) – sinsedrix

3

あなたが試みることができる:

HTTP Module for Custom Errors

この方法は、それはまだあなたがHTMLの少量を書くことが必要になりますフルカスタムページを必要としませんが、あなたが、出力HTMLを指定することができ、これを使用します。

関連する問題