2010-01-22 10 views
15

मैं अपने MVC आवेदन के लिए elmah उपयोग करने के लिए कोशिश कर रहा हूँ के लिए 404 पेज लौटने और मैं विकि पर चरणों का पालन किया: http://code.google.com/p/elmah/wiki/MVC, लेकिन फिर भी जब तक पहुंचने का प्रयास myapp/elmah.axd पृष्ठ:ASP.NET MVC - Elmah काम नहीं कर रहा और elmah.axd

404 - फ़ाइल या निर्देशिका नहीं मिली।

कोई भी मेरी मदद कर सकता है?

OBS: मेरे आईआईएस संस्करण 7,5


है में मदद करता है मैं अपने web.config के उचित वर्गों पोस्टिंग कर रहा हूँ:

<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> 
... 
</connectionStrings> 
<elmah> 
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
</elmah> 
<system.web> 
... 
<httpHandlers> 
    <remove verb="*" path="*.asmx" /> 
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> 
    <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
</httpHandlers> 
<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />    
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
</httpModules> 

और मेरे पर Global.asax.cs

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
... 
+0

आपका आईआईएस संस्करण क्या है? – Restuta

+0

आईआईएस का कौन सा संस्करण आप उपयोग कर रहे हैं? मैं केवल इसलिए पूछता हूं क्योंकि शायद हैंडलर दाएं .config खंड में नहीं है। आईआईएस 7 में इसे अनुभाग में होना आवश्यक है। कुछ और पूरी तरह से हो सकता है ... – hunter

+0

धन्यवाद दोस्तों, मैं आईआईएस 7 का उपयोग कर रहा हूँ।5 – zanona

उत्तर

12

आपको आईआईएस 7+ के लिए system.web सर्वर कॉन्फ़िगरेशन अनुभाग भी पॉप्युलेट करने की आवश्यकता है। See this question

2

इसे अपनी वेब.कॉन्फिग फ़ाइल में

में जोड़ने का प्रयास करें
<system.webServer> 

    <handlers> 
     <remove name="ErrorLog" /> 
     <remove name="ErrorMail" /> 
     <remove name="ErrorFilter" /> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />    
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />  
    </handlers>  
</system.webServer> 
+1

यह अजीब है, अब मुझे 500 - आंतरिक सर्वर त्रुटि मिल रही है – zanona

+0

कॉन्फ़िगर त्रुटि आवश्यक विशेषता 'पथ' – zanona

6

एमवीसी here में ELMAH का उपयोग करने का एक अच्छा तरीका है जो axd का उपयोग नहीं करता है लेकिन एक नियंत्रक और एक कस्टम ElmahActionResult का उपयोग नहीं करता है।

+0

गुम है यह बहुत अच्छा है (NuGet ने अभी मेरे लिए सही कॉन्फ़िगर नहीं किया है) लेकिन आपको मुख्य को बाहर ले जाना चाहिए कोड भागों और एसओ पर लिंक-सड़ांध से बचने के लिए उन्हें यहां पेस्ट करें। समाधान के लिए धन्यवाद। –

0

दूसरों को अनुभव करने में सहायता करने के लिए @zanona 2010 में वापस रास्ते के खिलाफ भाग गया (ऊपर @ शिकारी के जवाब पर टिप्पणियां देखें), निम्नलिखित परिवर्तन ने आज मेरे लिए "HTTP त्रुटि 500.19 - आंतरिक सर्वर त्रुटि" को ठीक किया है। @ शिकारी के जवाब में कॉन्फ़िगरेशन टैग की नियुक्ति पर ध्यान दें जो @ zanona की त्रुटि का कारण बनता है। उन टैग्स @hunter का उल्लेख मॉड्यूल के अधीन है, हैंडलर नहीं!

<modules> 
    <remove name="ErrorLog" /> 
    <remove name="ErrorMail" /> 
    <remove name="ErrorFilter" /> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />    
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
</modules>  

ऊपर ठीक मेरे लिए सफाया बहुत ही "कॉन्फ़िग त्रुटि - गुम आवश्यक विशेषता 'पथ' 'मुद्दा यह है कि @zanona पहले की सूचना दी। हैंडलर समूह में टैग के तरीके के परिणामस्वरूप यह त्रुटि आ गई है, और उसके पुनर्गठित टैगों के कारण स्पष्ट रूप से पथ विशेषता नहीं थी (क्योंकि वे वहां नहीं थे, बल्कि मॉड्यूल टैग के अंतर्गत हैं!)। अब यहां हैंडलर अनुभाग में कौन से टैग दिखने चाहिए:

<handlers> 

    <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 

</handlers> 

ध्यान दें कि पथ विशेषता मौजूद है? आह!

@hunter और @zanona के लिए धन्यवाद क्योंकि उन्होंने मुझे मेरे मुद्दे को हल करने के लिए आवश्यक पथ पर सेट किया था।

(नोट: मैंने सुधार करने के लिए ऊपर @hunter से मूल पोस्ट को संपादित करने का प्रयास किया है लेकिन सहकर्मी समीक्षा धीमी है और मैंने सोचा कि मैं इस जवाब को इस बीच एक ही चुनौती का सामना करने में मदद करने के लिए यहां रखूंगा। जब वह संपादन स्वीकार किया जाता है, तो हम इस पोस्ट को हटा सकते हैं।)

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