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

これをバニラの 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

IIRCでもweb.configのことは何もしません(私はMVCのものを使用していますが、あなたはそこにいません)

于 2010-11-03T18:01:45.220 に答える