IIS7: отключение HttpModule в субприложении - сайты, приложения и виртуальные каталоги
У меня есть несколько файлов aspx в папке "Cache" в моем приложении, и я не хочу, чтобы HttpModules запускались для этих файлов в этой папке. Я попытался создать файл web.config в подкаталоге, но узнал, что HttpModules получают корневой файл web.config, а не тот, который находится в подкаталоге. Ссылка 1, Ссылка2. Поэтому я решил иметь этот каталог в качестве дополнительного приложения в соответствии с предложением здесь и здесь.
Поэтому я настраиваю свое приложение, затем "добавляю приложение", сопоставляю его с этим каталогом, который уже находился внутри этого приложения, и происходит бум, он не работает. Он работает для статического html-файла, но aspx-файлы недоступны.
У меня вопрос, как мне настроить субприложение в IIS7 так, чтобы у субприложения мог быть свой собственный web.config и там я мог отключить HTTPModules корневого приложения
Изменить: На самом деле я попытался создать подпункт приложения в моем основном приложении, и это не сработало. Кто-нибудь может указать мне на какую-нибудь статью о том, как настроить подпрограмму в IIS7?
Edit2: добавление изображения ошибки. Так как мне настроить дочерний пул приложений? Дочернее приложение работает в том же пуле приложений, что и родительское.
Edit3: извините, ребенок работал в другом пуле приложений. Работало универсальное приложение (без модулей). Я отмечаю ответ после того, как попробую модули. Спасибо за вашу помощь, ребята. В моем родительском приложении web.config есть что-то конкретное, что я сейчас собираюсь найти.
http://i49.tinypic.com/ibjhw4.jpg
РЕДАКТИРОВАТЬ: На самом деле оба ответа, представленные ниже, являются правильными. Если вы используете интегрированный режим IIS7, ваши модули должны быть в system.webServer, а в классическом режиме IIS7 ваши модули (и обработчики?) Должны быть в system.web
2 ответа
JKG имеет правильный ответ для IIS6, но синтаксис немного отличается в IIS7:
<system.webServer>
<modules>
<remove name="MyModule"/>
</modules>
</system.webServer>
Файл web.config всегда наследует от своего родителя, если он находится в одном и том же веб-приложении, но вы можете очистить весь объект или удалить элемент следующим образом:
Из дочернего web.config (очистить все или удалить элемент)
<httpModules>
<clear />
<remove name="MyModule"/>
</httpModules>
Из родительского конфига с помощью тега местоположения...
<location inheritInChildApplications="false">
<system.web>
<!-- ... -->
</system.web>
</location>