Проблемы с ReflectionPermission при использовании Ninject 2.2, Fluent NHibernate в среде Medium Trust
Я использую (из пакетов Nuget) Ninject 2.2 и Fluent NHibernate 1.3 (NHibernate v3.2 под капотом), и я столкнулся с кирпичной стеной.
Я использую конфигурацию Fluent, чтобы указать на мою базу данных, сопоставления и т.д.:
var fluentConfig = Fluently.Configure()
(MsSqlConfiguration.MsSql2008.DoNot.UseReflectionOptimizer()
.ConnectionString(c => c.FromConnectionStringWithKey("ExampleDB")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<ExampleMap>()
.Conventions.Add(FluentNHibernate.Conventions.Helpers.DefaultLazy.Never()))
.ExposeConfiguration(x => x
.SetProperty("current_session_context_class", "web"))
.ExposeConfiguration(BuildSchema);
Код работает на моем локальном ящике до тех пор, пока я не установлю
Проблемная строка является второй в этом блоке кода
Bind<Configuration>().ToConstant(fluentConfig.BuildConfiguration());
Bind<ISessionFactory>().ToConstant(fluentConfig.BuildSessionFactory());
Bind<ISession>().ToMethod(x => GetRequestSession(x));
Исключение, которое я получаю: "... Запрос на разрешение типа 'System.Security.Permissions.ReflectionPermission....failed"
У кого-нибудь есть предложения? Мои исследования пока не дают ничего, кроме устаревшей информации, основанной на более старых версиях Ninject и NHibernate, или решений, предусматривающих декомпиляцию X для отключения Y... что я бы предпочел не делать!
1 ответ
Используйте среднюю доверенную сборку вместо версии от NuGet: https://github.com/ninject/ninject/downloads