Разрешение исключения безопасности для частично доверенных вызывающих абонентов выдается, хотя оно работает в режиме полного доверия.
-
13-09-2019 - |
Вопрос
При разработке с использованием ASP.net 2.0 (C#) и NHibernate 2.1.0 Я получаю ошибку:
System.TypeInitializationException: The type initializer for 'NHibernate.ByteCode.LinFu.ProxyFactory' threw an exception. ---> System.Security.SecurityException: That assembly does not allow partially trusted callers.
Эта ошибка была выдана только на рабочем сервере (веб-хостинговая компания) и в моей среде разработки все в порядке.
Я также запустил этот код ниже на рабочем сервере, чтобы увидеть уровень безопасности доступа к коду (CAS), и получил Истинный от:
System.Security.SecurityManager.IsGranted(new AspNetHostingPermission(AspNetHostingPermissionLevel.Unrestricted))
поэтому я могу предположить, что сейчас работаю в полностью доверенном режиме.
После прочтения некоторых статей об этой проблеме (не специально для NHibernate) Я понял, что мне нужно добавить
[assembly: AllowPartiallyTrustedCallers()]
в мой файл AssebmlyInfo.cs.
Мой вопрос:Есть ли способ решить это исключение без необходимости редактировать NHibernate.ByteCode.LinFu.dllAssmeblyInfo.cs ?Есть ли что-то, что можно настроить в web.config, чтобы разрешить подобные действия?
Спасибо,
Таль.
Решение
Вы пробовали шаги, описанные здесь?
Использование NHibernate в веб-среде со средним уровнем доверия