Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection 当webApi与HttpSelfHostServer一起运行时,是否有方法添加httpModule?_Dependency Injection_Castle Windsor_Asp.net Mvc 4_Asp.net Web Api_Self Hosting - Fatal编程技术网

Dependency injection 当webApi与HttpSelfHostServer一起运行时,是否有方法添加httpModule?

Dependency injection 当webApi与HttpSelfHostServer一起运行时,是否有方法添加httpModule?,dependency-injection,castle-windsor,asp.net-mvc-4,asp.net-web-api,self-hosting,Dependency Injection,Castle Windsor,Asp.net Mvc 4,Asp.net Web Api,Self Hosting,我有一个MVC4 webapi控制器。它没有无参数构造函数。所以,我使用Windsor依赖项解析器,在System.Web.Http.WebHost下工作时一切正常。但是,当我尝试使用HttpSelfHostServer时,会收到异常消息: 看起来您忘记注册http模块Castle.MicroKernel.lively.PerWebRequestLifestyleModule了 要解决此问题,请添加 添加name=“PerRequestLifestyle”type=“Castle.MicroKe

我有一个MVC4 webapi控制器。它没有无参数构造函数。所以,我使用Windsor依赖项解析器,在System.Web.Http.WebHost下工作时一切正常。但是,当我尝试使用HttpSelfHostServer时,会收到异常消息:

看起来您忘记注册http模块Castle.MicroKernel.lively.PerWebRequestLifestyleModule了
要解决此问题,请添加
添加name=“PerRequestLifestyle”type=“Castle.MicroKernel.Lifestyle.perwebrequestLifestyle模块,Castle.Windsor”/
转到web.config上的httpModules部分。
如果计划以集成管道模式在IIS上运行,则还需要将模块添加到system.webServer下的模块部分。
或者,确保GAC中有Microsoft.Web.Infrastructure、Version=1.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35程序集(由ASP.NET MVC3或WebMatrix安装),Windsor将能够自动注册模块,而无需向配置文件添加任何内容。
显然,温莎di无法注册其HTTPM模块。我试着补充一下



在我的app.config中,没有运气。尝试WebActivator使用PreApplicationStart方法也没有成功。有没有办法为自托管webapi应用程序添加httpModule

自托管时无法使用HttpModules。它们是ASP.NET特有的功能。

好的,那么服务器中有什么东西可以提供每个请求的生活方式吗?无法相信仅仅因为我更改了托管类型就需要重写所有DI代码?@brainboost问题在于你的IoC容器。对于ASP.NET Web API,您不能依赖于任何特定于ASP.NET的内容,但您的IoC容器似乎正是这样做的。例如,Autofac有一个针对ASP.NET Web API的特定集成包,它们有一个特定的
perapirequestlife
东西。