2

我已经在 ASP.NET 4.0 项目(不是 MVC)中配置了 Ninject 2,但是当我将项目部署到 IIS 主机时,它会因以下原因而崩溃:

System.NullReferenceException: Object reference not set to an instance of an object.

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.PipelineModuleStepContainer.GetEventCount(RequestNotification notification, Boolean isPostEvent) +30
   System.Web.PipelineStepManager.ResumeSteps(Exception error) +1481
   System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +132
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +709

我再次使用 vanilla ASP.net Web 应用程序对此进行了测试,并使用以下代码获得了相同的崩溃:

protected override IKernel CreateKernel()
{
    return Container;
}

private IKernel Container
{
    get
    {
        IKernel kernel = new StandardKernel(new SiteModule());
        var module = new OnePerRequestModule();
        module.Init(this);
        return kernel;
    }
}

有其他人让 Ninject 使用 ASP.net 4 吗?

[更新:2010.11.03]

在做了一些研究之后,它似乎与 OnePerRequestModule() 模块有关,但删除它似乎并不能解决我根据这个问题的建议添加它的问题

4

1 回答 1

2

在 Ninject 2 中,您使用Ninject.Web扩展(请参阅此处的完整集),并且不要像您在此处所做的那样进行任何显式配置OnePerRequestModule等。

你也不做任何 web.config 的东西 IIRC(我使用的是 MVC而你不在那里)

于 2010-11-03T18:01:45.220 回答