2012-10-30 6 views
1

Я пытаюсь переключить рабочее приложение MVC MVC с использованием идентификатора сетевой службы с пулом приложений с идентификатором пользователя домена. Я запустил aspnet_regiis на пользователе на веб-сервере и предоставил пользователям права доступа к базе данных (даже попробовал сделать это sysadmin в базе данных). Однако похоже, что он не может получить сеанс NHibernate.Невозможность получить сеанс NHibernate при переключении на проверку подлинности Windows

Exception information: 
Exception type: NullReferenceException 
Exception message: Object reference not set to an instance of an object. 

Request information: 
Request URL: http://<redacted> 
Request path: /<redacted> 
User host address: 10.10.10.10 
User: <webuser> 
Is authenticated: True 
Authentication Type: Forms 
Thread account name: <MYDOMAIN\MYUSER> 

Thread information: 
Thread ID: 1 
Thread account name: <MYDOMAIN\MYUSER> 
Is impersonating: False 
Stack trace: at SharpArch.Data.NHibernate.NHibernateSession.get_Current() in C:\MyStuff\Dev\Projects\SharpArchitecture\src\SharpArch\SharpArch.Data\NHibernate\NHibernateSession.cs:line 88 
at UserAccount.Persistence.UserRepository.GetByPropertiesPartialMatching(IDictionary`2 exactMatchPropertyValuePairs, IDictionary`2 partialMatchPropertyValuePairs, MatchMode matchMode) in c:\Persistence\UserRepository.cs:line 66 
... 

Фактическая линия, дающая нулевое эталонное исключение в пределах SharpArch NHibernateSession.cs является:

ISession session = Storage.Session; 
+0

Почему там NullReferenceException? Что становится нулевым? –

ответ

0

Основной причиной этой проблемы было то, что перед этим было еще одно исключение, где NHibernate «не удалось скомпилировать документ сопоставления». Причина в том, что .NET XMLSerializer нуждается в доступе на запись в c: \ windows \ temp. Я щелкнул правой кнопкой мыши эту папку и добавил идентификатор пула приложений (пользователя домена) с разрешением Modify. Тогда это было исправлено. Все это объясняется в NHibernate MappingException: Could not compile the mapping document

(Так что это было действительно связанно с временными файлами, Alec.)

1

Очистить ваши временные файлы на сервере. Я знаю, это звучит безумно, но S # делает кэширование файлов в конфиге.

Я делал это несколько раз, но никогда не видел проблемы, о которой вы сообщаете. ЛЮБОЙ из ваших звонков в репозитории (любой из них) преуспевает или все, кроме этого?

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