2012-10-30 46 views
1

我試圖將具有網絡服務身份的應用程序池中的工作S#arp體系結構MVC應用程序切換爲具有域用戶身份的應用程序池。我在web服務器上的用戶上運行了aspnet_regiis,併爲用戶提供了訪問數據庫的權限(甚至試圖將它作爲數據庫中的一個系統管理員)。但是,它似乎無法獲得NHibernate會話。切換到Windows身份驗證時未能獲得NHibernate會話

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的寫入權限。我右鍵單擊此文件夾並添加了具有修改權限的我的應用程序池標識(域用戶)。那是固定的。 這一切在NHibernate MappingException: Could not compile the mapping document

解釋(的確是這樣,涉及到臨時文件,亞歷克。)

1

清除你的臨時文件。我知道這聽起來很瘋狂,但S#在配置文件緩存。

我已經做了幾次,但從未見過你報告的問題。做任何你對庫的調用(其中任何一個)都可以成功或者除了這個之外的所有調用?

以下是對我的看法。你的應用程序快速啓動。如果它有連接問題,它將無法啓動應用程序。這讓我相信你可能會遇到另一個問題。