Castle WindsorとNHibernateファシリティを共有ホスティングで使用する
質問
WindorとNHibernateを中程度の信頼環境で使用しようとしていますが、許可に関するいくつかの問題に直面しています。私はこれに関する他の質問を読みましたが、私は議論されていないウィンザーのNHibernate機能を使用しています。
何らかの理由で、コンテナの起動時にCastle.Service.Transationsアセンブリに依存しています。これにより、次のインスタンスとインスタンスが作成されます。
Castle.Services.Transaction.CallContextActivityManager()
CallContextActivityManagerがSystem.Runtime.Remoting.Messaging.CallContextでSetDataを使用するために疲れているため、セキュリティ例外が発生します。これは、インフラストラクチャのアクセス許可がある場合にのみ許可されます。中信頼アプリはそうではないと推測しています。
このセキュリティ問題を中程度の信頼で回避する方法を知っている人はいますか? NHibernate機能をダンプして、コンテナに手動で登録する必要がありますか?
解決
これを回避するには、コンテナにTLSActivityManagerを登録します(タイプIActivityManagerの場合)。 DefaultTransactionManager(NHibernateIntegrationFacilityで使用)は、新しいCallContextActivityManagerを起動する代わりに、このActivityManagerを使用します。
所属していません StackOverflow