Интегрированный конвейер Ninject + .NET 4 + приводит к исключению NullReferenceException - PullRequest
2 голосов
/ 03 ноября 2010

Я настроил Ninject 2 в проекте ASP.NET 4.0 (не MVC), однако при развертывании проекта на узле 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 и получил такой же сбой с помощью следующего кода:

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 (), однако удаление этого, похоже, не решит проблему, которую я добавил, по предложению этого вопроса .

1 Ответ

2 голосов
/ 03 ноября 2010

В Ninject 2 вы используете расширение Ninject.Web ( см. Полный набор здесь ) и не выполняете никаких явных настроек, как у вас здесь OnePerRequestModule и т. Д.

Вы также ничего не делаете с web.config IIRC (я использую MVC one , а вы этого не делаете)

...