2012-12-10 2 views
6

IIS (6.0)의 ASP.Net (3.5) 사이트에서 응용 프로그램 오류가 발생하면 더러운 HTML 코드가 표시됩니다. 내가 자동 싶은깨끗한 ASP.Net 오류 페이지를 얻는 방법?

(나는 사용자 정의 페이지를 작성하여 관심이 아니다) ...이 대답을 구문 분석 웹 서비스에 대한 좋은 것, 대신 XHTML 코드를 생성합니다.

지정할 방법이 있습니까?

편집 : 여기에 예

예를 들어, 404 오류에 대해 생성 된 페이지, 내가 대신 깨끗한 XHTML 코드를 싶습니다하지만 내가 나 자신을 쓰고 싶지 않아, ASP.Net 모듈은 그것을 할 수 있습니다 ? 내 생각

은, 위의 HTML은 ASPX 페이지에 의해 생성 된 편집

<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로 번역하려면 @Remko 3rd 솔루션을 사용하여 사용자 정의 오류 페이지를 지정합니다.

+0

예를 들어 –

+0

다른 웹 서비스에 대해 별도의 응답 유형이 없습니까? –

답변

10

ASP.NET의 오류를 처리하고 응답 내용을 제어하는 ​​여러 가지 방법이 있습니다. 참고 : 페이지에의 Page_Error 이벤트 처리기를 추가 : 모든 방법은 페이지 수준에서

  1. (사용자 정의 페이지를 쓰기에 관심이없는 걸 당신의 발언에도 불구하고) 사용자 정의 XHTML 코드를 작성하는 방법을 필요로한다. 오류가 ASP.NET에 의해 처리되지 않습니다 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(); 
    } 
    

    .

  2. 응용 프로그램 수준에서 : Application_Error 이벤트 처리기를 Global.asax에 추가하십시오. 자세한 설명에 대한 web.config 파일

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

에서

protected void Application_Error(object sender, EventArgs e) 
{ 
    Exception objErr = Server.GetLastError().GetBaseException(); 
    Response.Write("<p>Your perfectly formatted XHTML code.</p>"); 
    Server.ClearError(); 
} 
  • 지정 사용자 지정 오류 페이지를 참조하십시오 위의 대답에 꽤 많이 자리 이상의 How to create custom error reporting pages in ASP.NET

  • +0

    고마워, 기본 오류 페이지를 찾아서 XHTML로 변환 할 때 제 3의 솔루션을 사용할 것이라고 생각합니다 (EDIT 참조). – sinsedrix

    3

    기타 시도 할 수 있습니다 :

    HTTP Module for Custom Errors

    이 방법은 아직도 당신이 HTML의 작은 금액을 쓸 필요합니다 전체 사용자 정의 페이지를 필요로하지 않는 동안, 출력 HTML을 지정할 수 있습니다이 사용.

    관련 문제