मैं 404 त्रुटियों को फ़िल्टर करने के लिए ELMAH को कॉन्फ़िगर करने का प्रयास कर रहा हूं और मैं अपने Web.config फ़ाइल में XML- प्रदत्त फ़िल्टर नियमों के साथ कठिनाइयों में भाग रहा हूं। मैंने ट्यूटोरियल here और here का पालन किया और <test><or>...
घोषणा के तहत एक <is-type binding="BaseException" type="System.IO.FileNotFoundException" />
घोषणा को जोड़ा, लेकिन यह पूरी तरह असफल रहा।ELMAH - फ़िल्टरिंग 404 त्रुटियां
जब मैं स्थानीय स्तर पर यह परीक्षण किया मैं Global.asax की void ErrorLog_Filtering() {}
में एक ब्रेकपाइंट अटक और पाया कि System.Web.HttpException
है, जो 404 के लिए ASP.NET द्वारा निकाल दिया जाता System.IO.FileNotFound
का आधार प्रकार है प्रतीत नहीं होता है, बल्कि यह बस System.Web.HttpException
है। मैंने इवेंट हैंडलर में e.Exception.GetBaseException().GetType()
पर कॉल करके इसका परीक्षण किया।
अगला मैंने उम्मीद में <regex binding="BaseException.Message" pattern="The file '/[^']+' does not exist" />
को आजमाने का फैसला किया कि पैटर्न "फ़ाइल '/ foo.ext' मौजूद नहीं है," फ़ाइल '/ foo.ext' मौजूद नहीं है "फ़िल्टर किया जाएगा, लेकिन इसका कोई असर नहीं पड़ता है। आखिरी उपाय के रूप में मैंने <is-type binding="BaseException" type="System.Exception" />
की कोशिश की, और यहां तक कि पूरी तरह से अवहेलना है।
मुझे लगता है कि ELMAH के साथ एक कॉन्फ़िगरेशन त्रुटि है, लेकिन मैं किसी को देखने में विफल रहता हूं। क्या मुझे कुछ स्पष्ट रूप से स्पष्ट याद आ रही है?
यहाँ मेरी web.config से प्रासंगिक सामान है:
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/>
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<errorFilter>
<test>
<or>
<equal binding="HttpStatusCode" value="404" type="Int32" />
<regex binding="BaseException.Message" pattern="The file '/[^']+' does not exist" />
</or>
</test>
</errorFilter>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/logs/elmah" />
</elmah>
<system.web>
<httpModules>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
</system.web>
<system.webServer>
<modules>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</modules>
</system.webServer>
</configuration>
कि ... – Baldy
@Baldy दुर्भाग्य से, कि एक नया विकास है। आपको अपनी आवश्यकता के लिए मेरे कॉन्फ़िगरेशन नमूना का संदर्भ ले सकते हैं। –
इसका ठीक नाथन, विषय सहायक था। मुझे बस यह मजाकिया लगता है कि विषय लगभग 404 है, और पृष्ठ पर दिए गए लिंक में से एक 404 की ओर जाता है :) – Baldy