Использование Castle Windsor и средства NHibernate на виртуальном хостинге

Я пытаюсь использовать Windsor и NHibernate в среде со средним уровнем доверия и сталкиваюсь с некоторыми проблемами с разрешениями. Я прочитал другие вопросы по этому вопросу, но я использую средство NHibernate в Виндзоре, которое я не видел обсуждаемым.

По какой-то причине существует зависимость от сборки Castle.Service.Transations при запуске контейнера. Затем он пытается создать и экземпляр:

Castle.Services.Transaction.CallContextActivityManager()

Исключение безопасности возникает, когда CallContextActivityManager утомляет использование SetData в System.Runtime.Remoting.Messaging.CallContext, которое разрешено только при наличии разрешения на инфраструктуру. Я предполагаю, что приложения со средним доверием не делают.

Кто-нибудь знает способ обойти эту проблему безопасности при среднем доверии? Должен ли я сбросить средство NHibernate и зарегистрировать его вручную в контейнере?

1 ответ

Решение

Вы можете обойти это, зарегистрировав TLSActivityManager в контейнере (для типа IActivityManager). Затем DefaultTransactionManager (используемый NHibernateIntegrationFacility) будет использовать этот ActivityManager вместо запуска нового CallContextActivityManager.

Другие вопросы по тегам