كيف يمكنك منع وراثة ملف web.config لموقع IIS الافتراضي بواسطة الدلائل الافتراضية؟

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

سؤال

لدي الكود التالي في ملف web.config لموقع IIS الافتراضي.

<httpModules>
    <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
</httpModules>

ثم عندما أقوم بإعداد دليل ظاهري وتصفحه، أحصل على هذا الخطأ

تعذر تحميل "المخططات" للملف أو التجميع أو أحد تبعياته.لا يمكن للنظام العثور على الملف المحدد.

يرث الدليل الظاهري الوحدات النمطية من web.config الافتراضي.

كيف يمكنك إيقاف هذا الميراث؟

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

المحلول

لقد وجدت الجواب.قم بلف قسم HttpModule في علامات الموقع وقم بتعيين سمة inheritInChildApplications على false.

<location path="." inheritInChildApplications="false">
  <system.web>
    <httpModules>
      <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
    </httpModules>
  </system.web>
</location>

الآن لن ترث أي أدلة افتراضية الإعدادات الموجودة في قسم الموقع هذا.

@GateKiller هذا ليس موقع ويب آخر، إنه دليل افتراضي لذلك يحدث الوراثة.

@petrich لقد حصلت على نتائج ناجحة وأخطأت باستخدامها <remove />.يجب أن أتذكر إضافته إلى كل دليل افتراضي وهو أمر مؤلم.

نصائح أخرى

أضف ما يلي إلى ملف web.config الخاص بالدليل الظاهري:

<httpModules>
    <remove name="ChartStreamHandler"/>
</httpModules>

وفقا لمايكروسوفت, ، ولا ترث مواقع الويب الأخرى الإعدادات من موقع الويب الافتراضي.هل تقصد أنك تقوم بتحرير web.config الافتراضي الموجود في نفس المجلد مثل Machine.config؟

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