FluentNHibernate взрывается в службе Windows, но не веб-сайт - PullRequest
0 голосов
/ 25 августа 2010

У меня есть библиотека классов, которая делает все мои вещи из NHibernate. Он также обрабатывает все сопоставления с помощью Fluent NHibernate - файлы сопоставления для развертывания отсутствуют.

Эта библиотека классов используется рядом приложений, включая службу Windows, запущенную на моем компьютере. Хотя он прекрасно работает во всех моих веб-приложениях, служба Windows получает это при попытке использовать NHibernate:

При создании SessionFactory использовалась неверная или неполная конфигурация. Проверьте коллекцию PotentialReasons и InnerException для более подробной информации. в FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory () в Kctc.NHibernate.KctcSessionFactory.get_SessionFactory () в C: \ Kctc \ Trunk \ Kctc.NHibernate \ KctcSessionFactory.cs: строка 28 ... больше трассировки стека ...

Я проверил наличие InnerException, и, похоже, его нет. Я понятия не имею, что такое коллекция PotentialReasons, и Google, похоже, тоже не появится.

Это моя машина разработки, поэтому, когда я работаю над моими веб-приложениями, они запускаются локально (то есть с использованием веб-сервера в Visual Studio). Тот факт, что служба Windows и мои веб-приложения для разработчиков работают на одном и том же компьютере, указывают на то, что это не связано с настройками доверия или чем-то другим.

Кто-нибудь может подсказать, что мне следует попробовать? Это одна из тех, где я так озадачен, что даже не могу придумать, как получить больше информации о проблеме.

Ответы [ 3 ]

0 голосов
/ 25 августа 2010

Бьюсь об заклад, имя строки подключения отсутствует в app.config.Для меня это сообщение является почти исключительно отсутствующей строкой соединения.

Вы нацеливаетесь на одну и ту же базу данных или это может быть какое-то несоответствие схемы между базами данных?

Возможно, это проблемы аутентификации в службенапример, вы используете проверку подлинности Windows там, где ее нельзя использовать (или проверку подлинности sql, которая не работает)?

Трудно сказать, когда кода нет, только исключение!

РЕДАКТИРОВАТЬ Вы когда-либо использовали HttpContext, HostingEnvironment или что-то еще, специфичное для "сети"?

0 голосов
/ 25 августа 2010

Я выяснил, в чем проблема.Служба не развернута с требуемым NHibernate.ByteCode.LinFu.dll.

Похоже, что у меня есть постоянная проблема с компилятором Visual Studio, который не всегда копирует косвенные зависимости (т. Е. Библиотеки, необходимые для библиотек классов, необходимых для приложения) в выходную папку во время сборки.Я должен был подумать об этом раньше, на самом деле.

Спасибо, что ломали себе голову от моего имени, ребята.

0 голосов
/ 25 августа 2010

Просто дикая догадка.NHibernate забирает файл hibernate.cfg.xml из каталога выполнения.Вы настроили каталог выполнения службы, чтобы он мог найти этот файл?

...