Как зарегистрировать HttpModule в machine.config для IIS 7? - PullRequest
0 голосов
/ 28 декабря 2011

Я пытаюсь установить HttpModule на все сайты на сервере. Он уже находится в GAC и работает на сайтах, если я отдельно добавлю соответствующую конфигурацию в файл web.config каждого сайта. Когда я перемещаю конфигурацию в machine.config или глобальный web.config, модуль исчезает.

Сейчас у меня есть конфигурация в секциях system.webserver/httpModules и system.web/httpModules в 32-битной и 64-битной machine.config и глобальной web.config - всего восемь мест, и ни одно из них не работает.

Я уже устанавливал модули в machine.config на IIS6, и это легко. Есть ли хитрость для их установки в IIS7?

1 Ответ

2 голосов
/ 29 декабря 2011

Очевидно, machine.config не отвечает за определение раздела system.webServer. Фактически, он определяет раздел как

<section name="system.webServer" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

Обратите внимание на тип: System.Configuration.IgnoreSection.

Раздел system.webServer определен в

%windir%\system32\inetsrv\config\applicationhost.config

Сразу после раздела system.webserver отображается

<location path="" overrideMode="Allow">
    <system.webServer>

    <modules>
        <!-- add the module here -->
        <add name="MyModule" type="MyNamespace.MyModule, MyAssmebly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=abcdefhijklmnop"/>

    </modules>

    </system.webServer>

</location>
...