Asp.net web api Owin、WebApi 2和Structuremap 3引发空HttpContext异常

Asp.net web api Owin、WebApi 2和Structuremap 3引发空HttpContext异常,asp.net-web-api,owin,structuremap,structuremap3,Asp.net Web Api,Owin,Structuremap,Structuremap3,我正在尝试让StructureMap 3与OWIN中自托管的WebAPI 2一起工作。有没有人成功地使这项工作发挥作用 我从Nuget安装了StructureMap 3、WebAPI 2.2、Owin Self Host和StructureMap.WebApi2。然后在WebApi服务启动类中,我添加了以下内容: public class WebApiServiceStartup { public void Configuration(IAppBuilder appBuilder)

我正在尝试让StructureMap 3与OWIN中自托管的WebAPI 2一起工作。有没有人成功地使这项工作发挥作用

我从Nuget安装了StructureMap 3、WebAPI 2.2、Owin Self Host和StructureMap.WebApi2。然后在WebApi服务启动类中,我添加了以下内容:

public class WebApiServiceStartup
{
    public void Configuration(IAppBuilder appBuilder)
    {
        var config = new HttpConfiguration();

        config.MapHttpAttributeRoutes();

        var container = IoC.Initialize();

        config.DependencyResolver = new StructureMapWebApiDependencyResolver(container);

        appBuilder.UseWebApi(config);
    }
}
但是,当应用程序启动时,当应用程序点击上面代码示例中的最后一行代码时,我收到以下异常:

Exception: Activation error occurred while trying to get instance of type HostBufferPolicySelector, key ""
Inner Exception: Value cannot be null. Parameter name: httpContext
此外,由于StructureMap.WebApi2 nuget包创建了一个App_Start文件夹,其中的代码通常在应用程序启动期间在IIS托管的WebApi应用程序中运行,因此我还尝试将此代码复制/粘贴到startup类的配置方法中:

var dependencyScope = new StructureMapDependencyScope(container);

DependencyResolver.SetResolver(dependencyScope);

DynamicModuleUtility.RegisterModule(typeof(StructureMapScopeModule));

GlobalConfiguration.Configuration.DependencyResolver = new StructureMapWebApiDependencyResolver(container);
不幸的是,即使有了这些额外的代码,我仍然收到相同的错误

我过去在让StructureMap 2与WebAPI 2和OWIN一起使用时没有遇到任何问题,因此我不确定StructureMap 3中的哪些更改会导致此问题