ASP.NET Web Api 2、Ninject、OWIN和IIS

ASP.NET Web Api 2、Ninject、OWIN和IIS,iis,ninject,asp.net-web-api2,ninject.web,Iis,Ninject,Asp.net Web Api2,Ninject.web,我在ASP.NET Web Api 2项目中使用Ninject进行依赖项注入。通过visualstudio和iisexpress,一切都可以在本地完美地工作,但是当我部署到IIS时,依赖关系没有得到解决。下面是我的Startup.cs 公共部分类启动 { 公共无效配置(IAppBuilder应用程序) { var webApiConfiguration=新的HttpConfiguration(); webApiConfiguration.EnableCors(); webApiConfigura

我在ASP.NET Web Api 2项目中使用Ninject进行依赖项注入。通过visualstudio和iisexpress,一切都可以在本地完美地工作,但是当我部署到IIS时,依赖关系没有得到解决。下面是我的Startup.cs

公共部分类启动
{
公共无效配置(IAppBuilder应用程序)
{
var webApiConfiguration=新的HttpConfiguration();
webApiConfiguration.EnableCors();
webApiConfiguration.SuppressDefaultHostAuthentication();
添加(新的HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
webApiConfiguration.MapHttpAttribute路由();
UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(webApiConfiguration);
ConfigureAuth(app);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
运行(异步上下文=>
{
wait context.Response.WriteAsync(“欢迎使用Web API”);
});
}
私有静态IKernel CreateKernel()
{
var kernel=新的标准内核();
kernel.Bind().ToMethod(ctx=>()=>newbootstrapper().kernel);
kernel.Bind().To();
Load(新的CourseModule(),新的DataPullModule(),新的DegreeModule(),新的ResponseeModule(),新的RestSharpModule());
返回内核;
}
}
尝试访问我的一个控制器时出现以下错误:

尝试创建“DegreeController”类型的控制器时出错。确保控制器具有无参数公共构造函数

这是DegreeController的构造函数:

public DegreeController(IDegreeMapper degreeMapper,idegreererepository degreeRepository)
{
_degreeMapper=degreeMapper;
_脱脂的=脱脂的;
}
这里是DegreeModule,我在这里将接口绑定到类

公共类DegreeModule:ninject模块
{
公共覆盖无效负载()
{
Bind().To().InRequestScope();
Bind().To().InRequestScope();
Bind().To().InRequestScope();
Bind().To().InRequestScope();
}
}

能否显示DegreeController的构造函数?已编辑。如果您想查看更多信息,请告诉我。它是在一个控制器中发生的还是在所有控制器中发生的?您可能已经解决了这个问题,但是,您是否尝试移动这一行app.UsenjectMiddleware(CreateKernel)。UsenjectWebAPI(webApiConfiguration);到方法末尾(即调用app.Run后)
var kernel = CreateKernel();
app.UseNinjectMiddleware(() => kernel).UseNinjectWebApi(configuration);