سؤال

أنا لا أجد أن هذا سهل الإعداد؛ إما أن هناك خطوة مفقودة في تكوين الإعداد، فإنها لا تعمل بشكل صحيح، أو لا أفهم ذلك في الواقع. هناك شيء مخطئ بالتأكيد هنا. يجب أن تكون المشكلة بي. أنا فقط لا أتلقى هذا للعمل. إليك ما فعلته.

إنشاء تطبيق MVC جديد تماما. وضعت ما يلي في صفحة About.aspx.

<٪ رمي استثناء جديد ("blah")؛ ٪> وضع المحتوى هنا.

اضغط على الصفحة احصل على الشاشة الصفراء باستثناء.

أضف elmah.dll إلى Bin Directory.

أضف إلى ملف 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>

أضف إلى قسم HTTPhanders ما يلي:

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

أضف إلى قسم الوحدات النمطية:

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>

أضف إلى قسم المعالج:

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

إضافة قسم المهد:

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

ما هو الغريب هنا هو أن الجزء ".xmlfileerrorlog" من تلك السلسلة تظهر باللون الأحمر كخطأ RESHHARPER يشير إلى أنه "لا يمكن حل الرمز" .CTOR "الذي عندما أنظر إلى Elmah.dll في عاكس يعرض هذا الكائن مطلوبا إما "سلسلة" أو "صلصة" في أي من المصانعين العامين.

أنا أقوم بتشغيل نظام التشغيل Windows Vista X64 مع VS 2008. قم بتعيين إذن على App_Data للجميع باسم CO_OWNER.

ال http: // localhost: xxxx / elmah.axd تأتي الصفحة ولا تظهر أي أخطاء. عندما تضغط على صفحتي "حول" مرة أخرى، ما زلت أرى الشاشة الصفراء والإيملة. لا تزال Elmah.axd لا توضح أي أخطاء في مجلد App_Data.

استبدلت CustomerRORS مع الصفحة المرتبطة بإنشاءها:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm" />

تظهر الصفحة المخصصة ولكن elmah.axd لا تزال تظهر "لا أخطاء". App_Data لا يزال فارغا!

كمصدر لبدء هذا الإعداد، استخدمت: code.google.com/p/elmah/wiki/mvc

إذن، أين أنا أفسد في؟

~ - = مايك = - ~

هل كانت مفيدة؟

المحلول

تحقق مما إذا كان ErrorLogModule موجود في كليهما configuration/system.web/httpModules (المستخدمة إذا كنت على خادم التنمية) و configuration/system.webServer/modules (المستخدمة من قبل IIS7). هنا هو جزء Web.config من المشروع، أنا أعمل حاليا على:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <httpModules>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        </httpModules>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="ErrorLog" />
            <remove name="ErrorMail" />
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
        </modules>
    </system.webServer>
</configuration>

أتمنى أن يساعدك هذا

نصائح أخرى

حاول إزالة هذا القسم:

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

هذا يعني أن إيملة هي الإعداد فقط استخدم تسجيل الدخول الافتراضي في الذاكرة. هذا يساعد في إطلاق النار على الرماية لأنك تعرف أنه ليس شيئا إذن الملف. لذلك بمجرد أن تحصل عليه في تسجيل الدخول في الذاكرة، يمكنك بعد ذلك إعداده لتسجيل الدخول إلى ملف XML.

قد ترغب أيضا في التحقق من سؤال StackoverFlow كيفية الحصول على Elmah للعمل مع سمة ASP.NET MVC [المقود]؟, ، التي أجبت عنها عفيز نفسه.

hths، تشارلز

لقد قمت بتثبيت من Nuget elmah و elmah on XML log, ، لم يحصل على Funcionality المتوقع على الرغم من أنني أستطيع الوصول http://localhost/elmah.axd, ، ولكن لا يلتقط خطأ.

أعطيت إذن الكتابة إلى حساب IIS_ianers في المجلد App_Data وبدأ العمل في أخطاء HTTP 404 والأخطاء التي تكون خارج البنية التحتية MVC. لكنها لم تسجل استثناءات داخل MVC. كان الحل تثبيت elmah.mvc. حزمة من Nuget وبدأت التقاط جميع الاستثناءات.

إذا كان التكوين الخاص بك على ما يرام، فما عليك سوى تثبيت elmah.mvc حزمة من Nuget وينبغي أن تبدأ تخزين سجلات داخل MVC، وليس فقط HTTP 404.

المشكلة هي هذا الخط

  <customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

استبدالها

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top