У меня есть вспомогательная сборка dll, разработанная с использованием C #, которую я вызываю из моего веб-приложения во время транзакции.
Мне нужно, чтобы мое веб-приложение имело полное доверие, и я хотел включить в нем legacyCasModel, поэтому я добавил следующие строки в web.config приложения
<trust level="Full" legacyCasModel="true" />
C # dll загружалась из GAC без каких-либо проблем, и я мог вызывать функцию сборки до тех пор, пока я не добавил этот тег доверия в web.config.
После добавления legacyCasModel = "true", запрос к веб-приложению не выполняется, и в журналах событий возникло исключение как
Не удалось инициализировать домен приложения: / LM / W3SVC / 2 / ROOT
Исключение: System.IO.FileLoadException
Сообщение: при загрузке этой сборки будет получен другой набор грантов.
из других случаев. (Исключение из HRESULT: 0x80131401)
StackTrace: в
System.Web.Configuration.HttpConfigurationSystem.EnsureInit (IConfigMapPath
configMapPath, Boolean listenToFileChanges, Boolean initComplete)
в System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager
appManager, IApplicationHost appHost, IConfigMapPathFactory
configMapPathFactory, HostingEnvironmentParameters hostingParameters,
PolicyLevel policyLevel, исключение appDomainCreationException) в
System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager
appManager, IApplicationHost appHost, IConfigMapPathFactory
configMapPathFactory, HostingEnvironmentParameters hostingParameters,
PolicyLevel policyLevel) в
System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager
appManager, IApplicationHost appHost, IConfigMapPathFactory
configMapPathFactory, HostingEnvironmentParameters hostingParameters,
PolicyLevel policyLevel) в
System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment (String
appId, IApplicationHost appHost, HostingEnvironmentParameters
хостингПараметры) на
System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors (String
appId, IApplicationHost appHost, HostingEnvironmentParameters
hostingParameters)
Если я закомментирую тела функций в сборке и просто return;
элемент управления, исключение не происходит. Если какая-либо из функций в сборке имеет классы .Net Framework, такие как System.Web.HttpContext, возникает исключение.
Как я могу устранить эту ошибку, не отключая legacyCasModel? Должен ли я реализовать какие-либо атрибуты безопасности для моей сборки?
Примечание. Моя сборка установлена в GAC с AnyCPU, скомпилирована .Net 3.5. Он имеет цифровую подпись с дижикертом, но в свидетельстве отсутствует сертификат x509 (имеет ли это значение ??)