Неустойчивый PolicyException: разрешение Выполнения не может быть получено

Мы периодически видим следующее исключение вскоре после того, как Пул приложений переработает в приложении ASP.NET:

System.Configuration.ConfigurationErrorsException: Could not load file or assembly 'Microsoft.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418) ---> System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418)
File name: 'Microsoft.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.Security.Policy.PolicyException: Execution permission cannot be acquired.
   at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission)
   at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission)
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)

Определенный DLL, которому не удается загрузиться, варьируется от инцидента до инцидента, но всегда является одним ссылаемым основным блоком.

Мы работаем на ASP.NET 3.5 на Windows Server 2008. Это, кажется, происходит в пакетах, влияющих на некоторых, но не все сайты на том же Пуле приложений. У нас есть большое количество сайтов все выполнение того же кода.

После того как сайту не удалось загрузиться DLL, он подбрасывает Желтый Экран Смерти, пока следующий Пул приложений не перерабатывает. Мы не смогли воспроизвести это поведение, и сайты, кажется, хорошо работают в течение многих дней или недель за один раз (и многие, Пул приложений перерабатывает) перед сбоем.

Кто-либо еще видел подобное поведение?

Обновление:

Мы попытались воспроизвести отказ путем установки нескольких сотен сайтов и записи сценария для удара их неоднократно при переработке Пула приложений один раз в несколько минут и не могли выполнить много кроме перегружения ЦП сервера в течение нескольких дней прямо.

Мы затем пытались смешать (блокировка одного из DLLs, изменяя полномочия файла) с копиями DLLs, который ASP.NET делает и управляемый для репродуцирования подобного поведения, но не того же исключения.

Делает у кого-либо есть любые идеи о том, как скорректировать политику безопасности, чтобы заставить это бросать a System.Security.Policy.PolicyException: Execution permission cannot be acquired. при загрузке определенного DLL?

7
задан Aaron Maenpaa 3 December 2009 в 20:47
поделиться

1 ответ

В настройках пула приложений IIS в разделе «Модель процесса» установите для параметра «Загрузить профиль пользователя» значение «Истина».

От IIS7 Не удалось предоставить минимальные запросы разрешений

2
ответ дан 7 December 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: