2008-11-03 6 views
24

Ich benutze das windsor DI-Framework in einem meiner MVC-Projekte. Das Projekt funktioniert gut, wenn ich von Visual Studio 2008.Sieht aus, als hättest du vergessen, das http-Modul bei Windsor Castle mit IIS7 zu registrieren

zu laufen versucht, aber als ich versuchte, das Projekt zu erstellen, eine Anwendung in IIS7 laufen dann erhielt ich folgende Fehlermeldung:

Sieht aus wie Sie vergessen, registrieren Sie die http-Modul Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule Add '< hinzufügen name = "PerRequestLifestyle" type = "Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel"/>' auf den Abschnitt auf Ihrer Web. Konfig

Dieses Modul ist jedoch bereits im Abschnitt httpmodul der Datei web.config vorhanden.

Weiß jemand, was ich tun muss, um dieses Problem zu beseitigen.

Antwort

35

Versuchen Sie es auch in den system.webServer Abschnitt hinzufügen?

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

Danke. Problem gelöst. –

+4









< add name = "PerRequestLifestyle" type = "..." />



... für mich. – Artiom

+0

sollte als unter korrigiert werden. –

4

Es half mir:

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

hatte ich den gleichen Fehler, aber es von einem anderen Grund verursacht:

Ich versuchte IService bei Application_Start für individuelle Routen Klasse Verarbeitung zu lösen, aber Typ für IService wurde mit PerWebRequestLifestyle registriert. Das Routing-Subsystem bleibt auf einer höheren Ebene als die Web-Anforderung, und Objekte sind zur Zeit der Routenverarbeitung nicht vorhanden.

+8

Sehr groß +1. Ich versuchte auch, PerWebRequest Lifestyles in meinem Application_Start zu jonglieren, und es verursachte falsche Positive auf diesen Fehler. – Kivin

+2

Das gleiche hier. Das Verschieben der Registrierung in BeginRequest hat es in meinem Fall gelöst. – RMD

+0

Anstatt zu BeginRequest zu verschieben, habe ich einen hybriden Lebenszyklus erstellt, um Transienten zu verwenden, wenn HtttpContext.Request null ist. – Cookie

2

Ich bin in meiner Entwicklungsumgebung auf dieses Problem gestoßen. Was bemerkenswert ist, ist dieser Tag:

<validation validateIntegratedModeConfiguration="false"/> 

Während es offensichtlich tut, was es auf dem Zinn sagt, kann es die lästigen Fehler mehr angezeigt. Vorausgesetzt, der Rest Ihrer Konfiguration funktioniert Ok.

Was für mich gearbeitet hat:

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