2012-02-13 2 views
1

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

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

Я использую EF, а мой backend - SQL Server 2008 R2.

ответ

1

У меня была такая же проблема, и я исправил ее, переключившись на расширение 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 работает просто отлично.

Смежные вопросы