nhibernate - 在共享主机上使用 CaSTLe Windsor 和 NHibernate 设施

标签 nhibernate inversion-of-control castle-windsor medium-trust windsor-nhfacility

我尝试在中等信任环境中使用 Windsor 和 NHibernate,但遇到了一些权限问题。我已经阅读了有关此问题的其他问题,但我正在使用 Windsor 的 NHibernate 工具,但我还没有看到讨论过。

由于某种原因,容器启动时存在对 CaSTLe.Service.Transations 程序集的依赖性。然后尝试创建以下实例:

Castle.Services.Transaction.CallContextActivityManager()

由于 CallContextActivityManager 不愿意在 System.Runtime.Remoting.Messaging.CallContext 中使用 SetData,因此会引发安全异常,只有在您拥有基础结构权限时才允许使用 SetData。我猜中等信任度的应用程序不会。

有人知道解决中等信任度安全问题的方法吗?我应该转储 NHibernate 设施并在容器中手动注册它吗?

最佳答案

您可以通过在容器中注册 TLSActivityManager(对于 IActivityManager 类型)来解决此问题。然后,DefaultTransactionManager(由 NHibernateIntegrationFacility 使用)将使用此 ActivityManager,而不是触发新的 CallContextActivityManager。

关于nhibernate - 在共享主机上使用 CaSTLe Windsor 和 NHibernate 设施,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038914/

相关文章:

c# - Azure 故障转移组的 SQL Server 连接字符串

c# - 将零宽度空间插入数据库的 Unicode 问题

c# - 使用 Windsor CaSTLe 从目录中检索 DLL

c# - 多种具体类型的 CaSTLe Windsor IoC 容器实例化

c# - CaSTLe Windsor 注册多个实例

c# - Windsor Container 什么时候触发临时组件的 IKernel.ComponentDestroyed 事件?

nhibernate - 在哪里可以找到 NHibernate ISession.Persist() 的文档?

nhibernate - Fluent NHibernate 的继承产生双重结果

java - 构建和注入(inject)客户端

asp.net-mvc - 将 MembershipProvider 注入(inject) ASP.NET MVC AccountController