asp.net mvc - ماذا يفعل ملف Web.Config في مجلد طرق عرض مشروع MVC




asp.net-mvc web-config (3)

الملف web.config في مجلد طرق العرض هو القيام ببعض الإعدادات المتخصصة التي تريد تطبيقها على الصفحات داخل مجلد المشاهدة.

مثل إعدادات التهيئة مثل: سلسلة الاتصال / appsettings الخ

ولكن ذلك سيكون قابلاً للتطبيق على ذلك المجلد فقط ، وسيقوم المشروع الباقي بالتقاط الإعدادات من web.config الموجود في الجذر.

خاصة عند استخدام مفهوم المنطقة ، سيكون هناك مجلد منفصل لكل منطقة يحتوي على ملف منفصل web.cfg حيث يمكنك تطبيق إعدادات منفصلة لكل منطقة.

أواجه بعض المشاكل مع نشر التطبيق الخاص بي وأثناء استكشاف الأخطاء وإصلاحها ، صادفت ملف Web.Config في مجلد Views . في محاولة لتضييق احتمالات مصادر لمشكلتي ، حاولت معرفة الغرض من ذلك الملف Web.Config ~ ولكن لا يمكن العثور على الكثير من المعلومات.

إذن أسئلتي هي:

  1. ماذا يفعل ملف Web.config في مجلد Views لمشروع MVC؟
  2. هل هو مطلوب؟

في نماذج الويب Asp.Net ، أعتقد أنه لاستخدام ملف web.config منفصل في مجلد ، يجب تعيين هذا المجلد كمجلد ظاهري في IIS. هل هذه هي الحالة في MVC (أي يجب تكوين مجلد Views كمجلد ظاهري)؟


لا ، لن تحتاج إلى تكوين مجلد ظاهري بسبب ملف web.config الإضافي هذا.

يوجد ملف web.config في مجلد "طرق العرض" لمنع الوصول إلى طرق العرض الخاصة بك بأي وسيلة أخرى غير وحدة التحكم الخاصة بك. في نمط تصميم MVC ، من المفترض أن تقوم وحدات التحكم بتوجيه الطلبات وإرجاع عرض تم عرضه لعميل الاستدعاء.

بمعنى آخر ، لا يجب الوصول إلى العرض الخاص بك على www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx مباشرةً.

إذا قمت HttpNotFoundHandler نظرة خاطفة على ملف web.config فإنه يسجل HttpNotFoundHandler في HttpNotFoundHandler إلى جميع المسارات والأفعال:

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

أو ، في IIS 7 قد يبدو

<add name="BlockViewHandler" path="*.aspx" verb="*" 
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>

يقوم بتكوين المحول البرمجي للحصول على طرق العرض مثل استيراد مساحات الأسماء ويجعل مجلد طرق العرض بإرجاع 404.





web-config