Использование Castle Windsor и средства NHibernate на виртуальном хостинге - PullRequest
2 голосов
/ 24 июня 2009

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

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

Castle.Services.Transaction.CallContextActivityManager()

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

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

1 Ответ

3 голосов
/ 25 июня 2009

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

...