Я написал HttpModule
в .NET 3.5, 32-битной Win 2003, IIS 6, которая отлично работала.Его сборки были в GAC, а конфиг был в machine.config
.Все было прекрасно в течение многих лет.
Я только что перенес все это на новую .NET 2-4, 64-битную Win 2008 R2, IIS 7.5 машину и поместил ту же старую конфигурацию в machine.config
.К сожалению, модуль не указан в списке тех, которые работают на сайте.Когда я помещаю конфигурацию прямо в web.config
сайта, она запускается как положено Почему мое приложение не наследует HttpModule от machine.config
?
Эта конфигурация ничего не делает в machine.config, но работает, как ожидается, в web.config.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="MyModule" type="MyModule, MyAssmebly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=abcdefghijklmno" />
</modules>
</system.webServer>
Я помещаю конфигурацию в каждый возможный файл machine.config безрезультатно:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
ОБНОВЛЕНИЕ
Другие элементы конфигурации наследуются web.config: system.web\compilation
и system.serviceModel\bindings
чтобы назвать пару.Модуль использует WCF, настроенный в machine.config
.Похоже, это просто HttpModule
, который не наследуется.Нет, <clear/>
нигде нет.