Не удается найти httpModules и httpHandlers внутри machine.config

Я прочитал сообщение об httpHandlers и httpModules в ASP.NET, и в нем говорилось, что есть такие узлы (‹httpModules› и ‹httpHandlers›), определенные по умолчанию внутри machine.config, но когда я посмотрел, их там не было. Я искал файл machine.config по пути "$WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG".

Единственными ссылками являются эти 2 строки:

<section name="httpHandlers" type="System.Web.Configuration.HttpHandlersSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpModules" type="System.Web.Configuration.HttpModulesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Я использую Win7, IIS7 и .NET версии 4.5.


person yagni    schedule 05.06.2014    source источник
comment
Вы должны смотреть на web.config, а не на машину (в указанном каталоге)   -  person Aristos    schedule 05.06.2014
comment
Спасибо, они действительно есть. Но какова тогда роль файла machine.config? Использует ли он упомянутый вами web.config или ссылается на него?   -  person yagni    schedule 05.06.2014


Ответы (2)


Файл конфигурации компьютера, Machine.config, содержит параметры, применимые ко всему компьютеру. Он определяет такие общие configSections, как <httpModules> и <httpHandlers> для настраиваемых модулей и настраиваемых обработчиков, так что вам не нужно объявлять их на каждом веб-сайте на вашем компьютере отдельно, а напрямую использовать как

<httpModules>
   <add name="..." type="..." /> 
</httpModules>

Для всей конфигурации машины не определены пользовательские модули/обработчики, и по умолчанию в файле machine.config нет <httpModules> и <httpHandlers>.

person user2316116    schedule 05.06.2014
comment
Спасибо, что прояснили ситуацию, возможно, статья была недостаточно задокументирована, поскольку в ней говорилось: Фактически, вы можете увидеть точный список модулей, используемых по умолчанию, зайдя в файл machine.config (находящийся в папке $ WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG) и поиск элемента ‹httpModules›. - person yagni; 05.06.2014

Вы можете получить список модулей с помощью appcmd, если это все, что вы пытаетесь сделать. appcmd list config site/vdir -section:"system.web/httpModules"

person Wonko    schedule 05.06.2014
comment
Спасибо, это позволяет мне видеть эти узлы, но для определенного сайта, верно? То, что я искал, было глобальной конфигурацией. - person yagni; 05.06.2014
comment
Да, Аристос направил меня к этому файлу и, похоже, ответил на мой вопрос. - person yagni; 06.06.2014