Похоже, вы забыли зарегистрировать модуль http в Виндзорском замке в IIS7 - PullRequest
26 голосов
/ 03 ноября 2008

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

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

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

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

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

Ответы [ 5 ]

45 голосов
/ 11 февраля 2011

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

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

35 голосов
/ 03 ноября 2008

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

<configuration>
    <system.web>
        <httpModules>
            <add name="PerRequestLifestyle" type="..." />
        </httpModules>
    </system.web>
    <system.webServer>
        <modules>
            <add name="PerRequestLifestyle" type="..." />
        </modules>
    </system.webServer>
</configuration>
4 голосов
/ 14 ноября 2010

Мне помогло:

<system.web>
  <httpModules>
      <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
  </httpModules>
3 голосов
/ 05 октября 2011

Я сталкивался с этой проблемой в моей среде разработчиков. Стоит отметить этот тег:

  <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>
0 голосов
/ 25 мая 2016

Я написал пост в блоге, который объясняет проблему на уровне кода, декомпилируя Castle.Windsor.dll.

Исправлено и объяснено: Забыл зарегистрировать модуль http Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule

...