2010-02-11 15 views
5

मेरे पास एक थीम वाला पृष्ठ है जिससे थीम को http मॉड्यूल के अंदर चुना जाता है।ELMAH एक थीमाधारित पृष्ठ त्रुटि

थीम पर आधारित सीएसएस फ़ाइलों का उपयोग करना पृष्ठ पर एक शीर्ष लेख नियंत्रण की आवश्यकता है:

public void context_PreRequestHandlerExecute(object sender, EventArgs e) 
{ 
    Page p = HttpContext.Current.Handler as Page; 

    if (p != null) 
    { 
     //get theme 
     string theme = GetTheme(HttpContext.Current.Request.Url.Host); 

     Debug.WriteLine(String.Format("Loading theme {0}", theme)); 

     //set theme of page 
     p.Theme = theme; 
    } 
} 

अब जब मैं elmah.axd निम्न अपवाद फेंक दिया जाता है का अनुरोध करें। (उदा।)।

जब मैं http थीम मॉड्यूल को अक्षम करता हूं तो सब कुछ ठीक है और elmah.axd पृष्ठ दिखाया गया है। मुझे लगता है कि यह ErrorLogPage के अंदर एक छोटी सी बग है। ErrorLogPage को इस तथ्य से निपटना चाहिए कि पृष्ठ पर एक विषय दिया जा सकता है या दिए गए विषय को अनदेखा करना चाहिए।

अभी के लिए मैं तरीके का उपयोग:

private const string ELMAH_ERROR_PAGE = "Elmah.ErrorLogPage";

 if (p.GetType().FullName != ELMAH_ERROR_PAGE) 
     { 
      p.Theme = theme; 
     } 

आप किसी भी बेहतर विचार या विचार है?

जीआर

Martijn

नीदरलैंड

+0

पेज, या मास्टर पृष्ठ, करता है एक 'runat =" सर्वर "' 'head' खंड में? –

उत्तर

0

आपकी समस्या का एक समाधान से पहले उत्तर दिया गया है:
Exclude certain pages from using a HTTPModule

आप HTTPMandler के बजाय के बजाय HTTPHandler का उपयोग कर सकते हैं। हैंडलर आपको वेब पथ में घोषित करते समय पथ निर्दिष्ट करते हैं। कॉनफिग।

<add verb="*" path="/validate/*.aspx" type="Handler,Assembly"/> 

आप एक HttpModule का उपयोग करना चाहिए, तो आप सिर्फ अनुरोध के रास्ते की जांच कर सकता है और अगर यह बाहर रखा होने के लिए एक है, सत्यापन बायपास।

संबंधित मुद्दे