2012-12-10 88 views
6

जब मुझे आईआईएस (6.0) पर एएसपी.Net (3.5) साइट के साथ कोई एप्लिकेशन त्रुटि मिलती है, तो मुझे गंदे HTML कोड मिलते हैं।स्वच्छ ASP.Net त्रुटि पृष्ठों को कैसे प्राप्त करें?

मुझे ऑटो जेनरेटेड एक्सएचटीएमएल कोड होना चाहिए, यह वेब सेवाओं के लिए अच्छा होगा जो उत्तर का विश्लेषण करते हैं ... (मुझे कस्टम पेज लिखकर रूचि नहीं है)।

क्या इसे निर्दिष्ट करने का कोई तरीका है?

संपादित करें: उदाहरण

यहाँ उदाहरण के लिए, एक 404 त्रुटि के लिए उत्पन्न पेज, मैं साफ एक्सएचटीएमएल कोड के बजाय चाहते हैं, लेकिन मैं इसे अपने आप को लिखने के लिए नहीं करना चाहते, 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 पेज द्वारा उत्पन्न की गई, वहाँ एक जगह है जहाँ मैं इसे पा सकते हैं क्या है? एक्सएचटीएमएल में इसे पाने और अनुवाद करने के लिए, मैं एक कस्टम त्रुटि पृष्ठ निर्दिष्ट करने के लिए @Remko 3 समाधान का उपयोग करूंगा।

+0

हमें एक उदाहरण दें –

+0

आपके पास अन्य वेब सेवाओं के लिए अलग प्रतिक्रिया प्रकार नहीं है? –

उत्तर

10

एएसपी.नेट में त्रुटियों को संभालने और आपकी प्रतिक्रिया की सामग्री को नियंत्रित करने के कई तरीके हैं। नोट: अपने पेज पर एक Page_Error ईवेंट हैंडलर जोड़ें: सभी तरीकों अपने स्वयं के कस्टम एक्सएचटीएमएल कोड (अपने टिप्पणी के बावजूद है कि आप कस्टम पेज लिखित रूप में रुचि नहीं रखते हैं)

  1. पेज स्तर पर लिखने के लिए आवश्यकता होती है।

    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 द्वारा नियंत्रित नहीं किया जाएगा कहते हैं और आप डिफ़ॉल्ट त्रुटि पृष्ठ नहीं मिलेगा।

  2. आवेदन स्तर पर: 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

बहुत बहुत धन्यवाद, मुझे लगता है कि जब मैं डिफ़ॉल्ट त्रुटि पृष्ठ पाता हूं और इसे एक्सएचटीएमएल में अनुवाद करता हूं तो मुझे तीसरे समाधान का उपयोग करना होगा (EDIT देखें) – sinsedrix

3

ऊपर जवाब पर काफी जगह के अलावा आप कोशिश कर सकते हैं:

HTTP Module for Custom Errors

इस का उपयोग करते हुए इस तरह से यह अभी भी आप HTML की एक छोटी राशि लिखने के लिए की आवश्यकता होगी पूर्ण कस्टम पेज की आवश्यकता नहीं है आप, आउटपुट HTML निर्दिष्ट कर सकते हैं।