2

我試圖在中等信任環境中使用Windsor和NHibernate,並且遇到了一些權限問題。我已經閱讀了關於這個問題的其他問題,但我正在使用溫莎的NHibernate工具,這是我從未見過的。在共享主機上使用Castle Windsor和NHibernate工具

出於某種原因,當容器啓動時,存在對Castle.Service.Transations程序集的依賴性。這則嘗試創建和實例:

Castle.Services.Transaction.CallContextActivityManager() 

安全異常升高爲CallContextActivityManager輪胎System.Runtime.Remoting.Messaging.CallContext使用SetData的哪個,如果你有基礎設施的權限,只允許。我猜中等信任的應用程序不會。

有沒有人知道解決這個中等信任安全問題的方法?我應該轉儲NHibernate的工具,並註冊與容器手動?

回答

3

您可以通過在容器中註冊TLSActivityManager(對於IActivityManager類型)來解決此問題。 DefaultTransactionManager(由NHibernateIntegrationFacility使用)將使用這個ActivityManager,而不是觸發一個新的CallContextActivityManager。

+0

作品。非常感謝。 – 2009-06-25 09:48:55