我试图在中等信任的环境中使用Windsor和NHibernate,但我遇到了一些权限问题。我已经通读了关于这方面的其他问题,但我正在使用温莎的NHibernate工具,我还没有见过讨论过的工具。
由于某些原因,容器启动时会依赖于Castle.Service.Transations程序集。然后,尝试创建以下内容的实例:
Castle.Services.Transaction.CallContextActivityManager()当CallContextActivityManager尝试在System.Runtime.Remoting.Messaging.CallContext中使用SetData时,会引发安全异常,这只有在您拥有基础架构权限时才被允许。我猜中等信任的应用程序不会。
有没有人知道在中等信任中解决这个安全问题的方法?我是否应该转储NHibernate工具并将其手动注册到容器?
发布于 2009-06-25 09:17:36
您可以通过在容器中注册TLSActivityManager (针对类型IActivityManager)来解决此问题。然后,DefaultTransactionManager (由NHibernateIntegrationFacility使用)将使用此ActivityManager,而不是触发新的CallContextActivityManager。
https://stackoverflow.com/questions/1038914
复制相似问题