Проблемы с разрешением ReflectionPermission при использовании Ninject 2.2, Fluent NHibernate в среде среднего уровня доверия

Я использую (из пакетов Nuget) Ninject 2.2 и Fluent NHibernate 1.3 (NHibernate v3.2 под капотом) и наткнулся на кирпичную стену.

Я использую Fluent config, чтобы указать на мою базу данных, сопоставления и т. Д .:

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);

Код работает красиво на моем локальном компьютере, пока я не установлю ‹trust level =" Medium "/> для зеркалирования моего хостинг-провайдера, а затем он не начнет работать.

Проблемная строка - вторая в этом блоке кода.

Bind<Configuration>().ToConstant(fluentConfig.BuildConfiguration());
Bind<ISessionFactory>().ToConstant(fluentConfig.BuildSessionFactory());
Bind<ISession>().ToMethod(x => GetRequestSession(x));

Полученное мной исключение: "... Запрос на разрешение типа 'System.Security.Permissions.ReflectionPermission .... завершился неудачно"

У кого-нибудь есть предложения? Мои исследования пока не обнаруживают ничего, кроме устаревшей информации, основанной на более старых версиях Ninject и NHibernate, или решений, которые включают декомпиляцию X для отключения Y ... чего я бы предпочел не делать!


comment
Между тем, когда я задавал этот вопрос, я перешел к хостинг-провайдеру, который поддерживает полное доверие. Я все же хотел бы знать, есть ли способ создать FNHB в среде Medium Trust.   -  person Greg    schedule 11.05.2012


Ответы (1)


Используйте сборку среднего доверия вместо версии из NuGet: https://github.com/ninject/ninject/downloads

person Remo Gloor    schedule 29.02.2012
comment
Это определенно помогло, спасибо. Замена библиотеки DLL Ninject позволила Ninject правильно работать под средним доверием. (Свободно) NHibernate по-прежнему генерирует то же исключение. Я на полпути! - person Greg; 01.03.2012