Подтвердить что ты не робот

Похоже, вы забыли зарегистрировать модуль http с Виндзорским замком с помощью IIS7

Я использую среду виндзора DI в одном из проектов MVC. Проект отлично работает, когда я пытался запустить Visual Studio 2008.

Но когда я попытался запустить проект, создав приложение в IIS7, я получил следующее сообщение об ошибке:

Похоже, вы забыли зарегистрировать модуль http Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule Добавить '< добавить name= "PerRequestLifestyle" TYPE = "Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel" / > ' в раздел на вашем web.config

Но этот модуль уже существует в разделе httpmodule файла web.config.

Кто-нибудь знает, что я должен сделать, чтобы устранить эту проблему.

4b9b3361

Ответ 1

Попробуйте добавить его в раздел system.webServer?

<configuration>
    <system.web>
        <httpModules>
            <add name="PerRequestLifestyle" type="..." />
        </httpModules>
    </system.web>
    <system.webServer>
        <modules>
            <add name="PerRequestLifestyle" type="..." />
        </modules>
    </system.webServer>
</configuration>

Ответ 2

У меня была такая же ошибка, но она вызвана другой причиной:

Я попытался разрешить IService в Application_Start для пользовательской обработки класса маршрута, но тип для IService был зарегистрирован в PerWebRequestLifestyle. Подсистема маршрутизации остается на более высоком уровне, что веб-запрос, и объекты не существуют во время обработки маршрута.

Ответ 3

Это помогло мне:

<system.web>
  <httpModules>
      <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
  </httpModules>
</system.web>

Ответ 4

Я столкнулся с этой проблемой в моем окружении. Что стоит отметить этот тег:

  <validation validateIntegratedModeConfiguration="false"/>

Несмотря на то, что он явно делает то, что он говорит на жестяной банке, он может остановить появление этих досадных ошибок. Предполагая, что остальная часть вашей конфигурации работает нормально.

Что сработало для меня:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="PerRequestLifestyle"/>
    <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor"/>
  </modules>
</system.webServer>