Исключение из строки подключения после обновления до Ninject 3.0.0-rc3 - PullRequest
1 голос
/ 13 февраля 2012

Я недавно обновил свой проект веб-сайта до Ninject 3.0.0-rc3, и после этого я получаю сообщение об ошибке: «Предоставленное соединение недопустимо, поскольку оно содержит недостаточно информации о сопоставлении или метаданных». Все это работало, когда я использовал версию 2.2.0.0.

Есть идеи, что могло вызвать появление этого исключения, а также как я могу его разрешить?

Я использую EF, и мой бэкэнд - SQL Server 2008 R2.

1 Ответ

1 голос
/ 25 июня 2012

У меня была та же проблема, и я исправил ее, вернувшись к расширению NinjectHttpApplication, а не к подходу NinjectWebCommon.cs.См. https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application для получения более подробной информации.

Чтобы обновление Ninject 3 работало, мне пришлось добавить следующие привязки к моим модулям привязки:

        Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
        Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

Я думаю,корень проблемы в том, что NinjectWebCommon.cs вызывается до того, как приложение полностью осознает свой собственный контекст, поэтому Entity Framework не может понять, как анализировать строки подключения, если создается экземпляр контекста как часть установки ваших привязок.Это не будет проблемой для многих проектов, но наш использует конфигурацию базы данных, чтобы определить, какие модули Ninject загружать в первую очередь.Метод Global Application_Start предположительно вызывается на более позднем этапе жизненного цикла приложения, поэтому настройка привязок в Global прекрасно работает.

...