我试图使用温莎和NHibernate在中等信任环境,我对一些问题的权限运行起来。我已经通过这个的其他问题读,但我使用温莎的NHibernate的设施,我还没有看到讨论。

出于某种原因,存在对Castle.Service.Transations组件的依赖关系,当容器启动。这然后尝试创建和实例:

Castle.Services.Transaction.CallContextActivityManager()

一个安全异常升高为CallContextActivityManager轮胎System.Runtime.Remoting.Messaging.CallContext使用SetData的哪个,如果你有基础设施的权限,只允许。我猜测,中等信任的应用程序没有。

有谁知道周围的中等信任这个安全问题的方法吗?我应该转储NHibernate的设施和与所述容器手动注册吗?

有帮助吗?

解决方案

可以解决这个问题通过在容器登记TLSActivityManager(对于类型IActivityManager)。所述DefaultTransactionManager(由NHibernateIntegrationFacility使用),那么将使用此ActivityManager代替发射了一个新的CallContextActivityManager

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top