Elmah asp.net साइट के साथ काम नहीं कर रहा है


80

मैंने अपने asp.net साइट के साथ एल्माह का उपयोग करने की कोशिश की है, लेकिन जब भी मैं http: // localhost: port / elmah.axd पर जाने की कोशिश करता हूं तो मुझे वह संसाधन मिलता है जो अपवाद नहीं मिला। मेरा web.config नीचे दिया गया है।

    <?xml version="1.0"?>
    <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>
        <security allowRemoteAccess="0" />
        <errorLog type="Elmah.SqlErrorLog, Elmah" 
                 connectionStringName="elmah-sql" />
        <errorMail
                from="my@account"
                to="myself"
                subject="ERROR From Elmah:"
                async="true"
                smtpPort="587"
                smtpServer="smtp.gmail.com"
                userName="my@account"
                password="mypassword" />
      </elmah>

      <connectionStrings>
        <add name="elmah-sql" connectionString="data source=(sqlserver); 
               database=elmahdb;
             integrated security=false;User ID=user;Password=password"/>
      </connectionStrings>
      <system.web>
        <compilation debug="true">
          <assemblies>
            <add assembly="Elmah, Version=1.0.10617.0, Culture=neutral, 
               PublicKeyToken=null"/>
          </assemblies>
        </compilation>
        <authentication mode="Windows"/>

        <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"/>
        </httpHandlers>
        <httpModules>
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, 
                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
                PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
      </system.web>

      <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules runAllManagedModulesForAllRequests="true">
          <remove name="ScriptModule"/>
          <add name="ScriptModule" preCondition="managedHandler" 
                type="System.Web.Handlers.ScriptModule, 
               System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
                 PublicKeyToken=31BF3856AD364E35"/>
          <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
          <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
          <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
        </modules>

        <handlers>
          <remove name="WebServiceHandlerFactory-Integrated"/>
          <remove name="ScriptHandlerFactory"/>
          <remove name="ScriptHandlerFactoryAppServices"/>
          <remove name="ScriptResource"/>
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" 
                preCondition="integratedMode" 
               type="System.Web.Script.Services.ScriptHandlerFactory, 
                    System.Web.Extensions, Version=3.5.0.0, 
               Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="ScriptHandlerFactoryAppServices" verb="*" 
            path="*_AppService.axd" preCondition="integratedMode" 
               type="System.Web.Script.Services.ScriptHandlerFactory, 
                 System.Web.Extensions, Version=3.5.0.0, 
               Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="ScriptResource" preCondition="integratedMode" 
            verb="GET,HEAD" path="ScriptResource.axd" 
               type="System.Web.Handlers.ScriptResourceHandler, 
            System.Web.Extensions, Version=3.5.0.0, 
               Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" 
                       preCondition="integratedMode" 
               type="Elmah.ErrorLogPageFactory, Elmah"/>
        </handlers>
      </system.webServer>
    </configuration>

संपादित करें: एल्माह = (त्रुटि लॉगिंग मॉड्यूल और हैंडलर)
http://code.google.com/p/elmah/


1
अमन: आप मान रहे हैं कि हर कोई जानता है कि एएलएमएएच क्या है। मैंने लिंक प्रदान करने के लिए प्रश्न को संपादित किया है। इसे ठीक करें, अगर यह मामला नहीं है।
शुक्लपक्ष

मुझे लगता है कि आपको IIS स्तर पर हैंडलर / मॉड्यूल को पंजीकृत करना पड़ सकता है, मुझे लगता है कि यह काम करने के लिए है।
शुक्लपक्ष

1
देखें कि क्या यह मदद करता है - msdn.microsoft.com/en-us/library/aa479332.aspx
shahkalpesh

धन्यवाद @ अंकलकेश मैं वास्तव में काम से अभिभूत हूं! हालाँकि मुझे लगा कि यह प्रश्न दूसरों की भी मदद कर सकता है और इसे सामुदायिक विकि बना सकता है।
TheVillageIdiot

अजीब लेकिन मैंने बिना किसी भाग्य के सुझावों की कोशिश की! सबसे खराब, जब मैंने पहुंचने का प्रयास किया elmah.axd, तो IIS लटका हुआ है।

जवाबों:


28

अनुभाग में "httphandlers" और "httpmodules" अनुभागों में मॉड्यूल और हैंडलर्स को पंजीकृत करने का प्रयास करें <system.web>:

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

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

इसके काम Yippe !!! यह मुझे वहां लगाने के लिए भी हुआ, लेकिन मैंने इसे किसी भी ऑनलाइन ब्लॉग समाधान आदि में नहीं देखा है, इसलिए मुझे इसे करने में थोड़ी शर्म आ रही थी।
विलेजइडियोडॉट

153

मुझे बस इसी तरह की समस्या थी कि एल्माह आईआईएस 7 की तैनाती में काम नहीं कर रहा था। मैंने पाया कि मुझे एल्माह मॉड्यूल और हैंडलर को system.webAND में पंजीकृत करने की आवश्यकता है system.webServer:

<system.web>
...
  <httpHandlers>
    ...
    <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    ...
  </httpHandlers>
  <httpModules>
    ...
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    ...
  </httpModules>
  ...
</system.web>
<system.webServer>
  ...
  <modules runAllManagedModulesForAllRequests="true">
    ...
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    ...
  </modules>
  <handlers>
    ...
    <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    ...
  </handlers>
<system.webServer>

किसी कारण से, यह मेरे लिए अलग सर्वर पर काम कर रहा है। यह अजीब है, क्योंकि यह हमारे समान होना चाहिए, फिर भी हमारे पास सिस्टम है।
मैक्सिमिलियन

2
धन्यवाद, कि वास्तव में मेरी मदद की।
18

1
कमाल है, इस जवाब ने मुझे बड़ा समय बचा लिया।
क्रिस एफ

22
आप में से उन लोगों के लिए जो system.web से system.webserver में कटिंग और पेस्ट करते हैं, सुनिश्चित करें कि आप संचालकों के अनुभाग में नाम विशेषता जोड़ते हैं।
जेसन वाट्स

2
धन्यवाद, यह मेरे लिए काम किया। लेकिन क्या यह एक बग है? <system.web>जबकि IIS6 के लिए माना जाता है <system.webServer>प्रति के लिए IIS7 + है stackoverflow.com/questions/355261/...
DeepSpace101

120

आपको इसकी आवश्यकता हो सकती है

<elmah>
    <security allowRemoteAccess="1" />
</elmah> 

आप कब प्राप्त करोगे

403 - निषिद्ध: प्रवेश निषेध है। आपके द्वारा प्रदत्त क्रेडेंशियल्स का उपयोग करके इस निर्देशिका या पृष्ठ को देखने की अनुमति नहीं है।


1
यह मेरे लिए आँखों के पोस्ट को सत्यापित करने के बाद किया।
सिटीजनबैन ५'१० को

4
हाँ, लेकिन प्रमाणीकरण के माध्यम से उस पृष्ठ को सुरक्षित करना न भूलें। अन्यथा कोई भी आपके लॉग को पढ़ सकता है।
driAn

सही है। 404 "पाया नहीं गया" है, लेकिन ज्यादातर जब आप 404 को ठीक करते हैं, जैसा कि आप आमतौर पर 403 को चिह्नित जवाब के रूप में तय करते हैं।
जिरापॉन्ग

3
आप = "elmah" sectiongroup नाम के तहत जोड़ने की जरूरत है <अनुभाग नाम = "सुरक्षा" requirePermission = "false" type = "Elmah.SecuritySectionHandler, Elmah" />
Mhmd

इसके बाद आपको इसे जोड़ना होगा </ configSections> टैग
कार्ल ग्लेनॉन

12

यह लाइन गायब थी जब मैंने NuGet (VS 2013, IIS 8.0) का उपयोग करके स्थापित किया था:

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

इसे जोड़ने से 404 त्रुटि की समस्या हल हो गई।


यह बिल्कुल मेरे लिए भी काम किया। धन्यवाद पीटर।
ली एंग्लस्टोन

यह मेरे लिए फिक्स था, मैं भी बनाम 2013, iis8.0 पर हूं, स्थापित करने के लिए नगेट का उपयोग किया।
जेम्स बैली

इसने मेरे लिए वीएस 2015 में लोकलहोस्ट पर डिबग में एलएमएएच स्थापित करने के लिए नगेट का उपयोग करने के बाद इसे ठीक किया।
सेंसहिटोकिरी

मेरे पास भी यही था। मैंने प्रोजेक्ट के साथ एक मुद्दा उठाया है github.com/alexbeletsky/elmah-mvc/issues/89
m.edmondson

मेरे लिए भी काम किया
ड्रैगोस डर्लुट

11

आज इसके आसपास जाने का एक तरीका है कि नगेट का उपयोग करना।

विजुअल स्टूडियो: मेनू-> टूल्स-> लाइब्रेरी पैकेज मैनेजर-> पैकेज मैनेजर कंसोल

install-package elmah

HTH


नगेट वास्तव में डेवलपर्स के जीवन को आसान बना रहा है।
विलेजइडियोडॉट

बस मेरे वेब पर ठीक किया .config
बेंज सैंडर्स

9

नगेट पैकेज 40. त्रुटि के परिणामस्वरूप web.config में निम्नलिखित महत्वपूर्ण लाइनें नहीं जोड़ता है।

<configuration>
  <elmah>  
    <security allowRemoteAccess="1" />
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/app_data/elmah" />
  </elmah>
</configuration>

इसके अलावा आप त्रुटि लॉग तक पहुंच को प्रतिबंधित करना चाहते हैं

<add name="Elmah" verb="POST,GET,HEAD" path="/admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />

0

यदि आप क्षेत्रों का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने एपसेटिंग कुंजी में से एक को अपडेट किया है

चूक

<add key="elmah.mvc.route" value="elmah" />

यदि आप एडमिन के रूप में एक क्षेत्र हैं

<add key="elmah.mvc.route" value="admin/elmah" />
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.