27

MVC プロジェクトの 1 つでウィンザー DI フレームワークを使用しています。Visual Studio 2008 から実行しようとすると、プロジェクトは正常に動作します。

しかし、IIS7 でアプリケーションを作成するプロジェクトを実行しようとすると、次のエラー メッセージが表示されました。

http モジュール Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule を登録するのを忘れたようです '<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel" />' を Web のセクションに追加してください。構成

ただし、このモジュールは web.config ファイルの httpmodule セクションに既に存在します。

この問題を解決するために私がしなければならないことを誰かが知っていますか?

4

5 に答える 5

47

同じエラーが発生しましたが、別の理由で発生しました。

IServiceカスタムルートクラス処理のためにで解決しようとしましApplication_Startたが、タイプforIServiceがに登録されましたPerWebRequestLifestyle。ルーティングサブシステムはWeb要求よりも高いレベルにとどまり、ルート処理時にオブジェクトは存在しません。

于 2011-02-11T11:12:08.723 に答える
35

セクションにも追加してみてはsystem.webServer

<configuration>
    <system.web>
        <httpModules>
            <add name="PerRequestLifestyle" type="..." />
        </httpModules>
    </system.web>
    <system.webServer>
        <modules>
            <add name="PerRequestLifestyle" type="..." />
        </modules>
    </system.webServer>
</configuration>
于 2008-11-03T07:30:24.870 に答える
4

それは私を助けました:

<system.web>
  <httpModules>
      <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
  </httpModules>
</system.web>
于 2010-11-14T20:59:55.683 に答える
3

私の開発環境でこの問題に遭遇しました。注目すべきは、次のタグです。

  <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>
于 2011-10-05T18:38:09.853 に答える