كيف يمكنني الحصول على 404 للعمل مع Elmah و HandleRorattribute المكتوبة لـ Elmah في ASP.NET MVC؟

StackOverflow https://stackoverflow.com/questions/4027433

سؤال

لقد قمت بتطبيق Elmah في أحد مشاريع ASP.NET MVC الخاصة بي. بالإضافة إلى ذلك ، فعلت ما يلي:

  • لقد قمت بتنفيذ Elmahhandleerrorattribute التي كتبها Atif Aziz في هذا بريد
  • أضفت السمة إلى جميع وحدات التحكم الخاصة بي
  • لقد قمت بإعداد Elmah لتصفية 404 خطأ لأنني لا أريد تسجيل هؤلاء
  • أضفت طريقة عرض error.aspx في المجلد المشترك الذي أرغب في استخدامه لجميع أخطائي.
  • يتم تشغيل CustomerRors الخاص بي في الويب.

في أحد وحدات التحكم الخاصة بي ، لدي الرمز التالي:

if (model == null)
            throw new HttpException((int)HttpStatusCode.NotFound, "Project not found");

أريد ببساطة عرض 404 إذا لم يكن من الممكن العثور على سجل في قاعدة البيانات. لسبب ما ، لن يتم عرض صفحة خطأي. aspx لخطأ 404. بدلاً من ذلك ، يعرض صفحة ASP.NET العامة "لا يمكن العثور على المورد". لقد حاولت إزالة إعداد 404 مرشح في Elmah لكن هذا لا يغير أي شيء.

الجزء المثير للاهتمام هو إذا قمت بتغيير الخطأ من Notfound إلى القول الداخلي errorerror the error.aspx تظهر صفحة على ما يرام.

هل لدى أي شخص أي مؤشرات حول سبب هذا؟

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

المحلول

لم أستخدم Elmah خارج إنشاء تطبيق عينة - ولكن ربما لأن 404 ليس خطأ في التطبيق؟ إذا كان فهمي صحيحًا ، يتم دفع خطأ 404 مرة أخرى إلى IIS والذي يعرض بدوره رسالة الخطأ التي تراها. أيضا ، أعتقد أن web.coin

إذا فهمت بشكل صحيح ، فقد ترغب في تعديل نهجك وبناء استخدام هذا في حين أن أو تعيين Response.StatusCode إلى 404 (تحقق من إجابة جيف في السؤال المرتبط)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top