1

動作しているS#arp Architecture MVCアプリケーションを、ネットワークサービスIDを持つアプリプールからドメインユーザーIDを持つアプリプールに切り替えようとしています。Webサーバーのユーザーに対してaspnet_regiisを実行し、データベースにアクセスするためのアクセス許可をユーザーに付与しました(データベースのシステム管理者にしようとした場合でも)。ただし、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
...

SharpArchNHibernateSession.cs内でNull参照例外を与える実際の行は次のとおりです。

ISession session = Storage.Session;
4

2 に答える 2

1

サーバー上の一時ファイルをクリアします。クレイジーに聞こえるかもしれませんが、S#は設定でファイルキャッシュを行います。

私はこれを数回行いましたが、あなたが報告している問題を見たことがありません。リポジトリへの呼び出しのいずれか(それらのいずれか)は成功しますか、それともこれ以外のすべてですか?

これが私に突き出ているものです。アプリケーションが起動します。接続に問題がある場合は、アプリケーションを起動できません。それはあなたが別の問題を抱えているかもしれないと私に信じさせています。

于 2012-10-31T19:37:54.697 に答える
0

この問題の根本的な原因は、NHibernateが「マッピングドキュメントをコンパイルできなかった」というこの例外の前に実際に別の例外があったことでした。その理由は、.NET XMLSerializerがc:\ windows\tempへの書き込みアクセス権を必要とするためです。このフォルダーを右クリックし、変更権限を持つアプリケーションプールID(ドメインユーザー)を追加しました。その時修正されました。これはすべてNHibernateMappingExceptionで説明されています:マッピングドキュメントをコンパイルできませんでした

(つまり、それは確かに一時ファイルに関連していました、アレック。)

于 2012-11-10T00:26:35.163 に答える