IIS7 не удалось удовлетворить минимальные запросы разрешений
Я получаю эту ошибку, когда я использую FileHelpers.dll, но мой IIS установлен на уровень полного доверия, поэтому так быть не должно
Это полная трассировка стека:
[PolicyException: Required permissions cannot be acquired.]
System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +10238142
System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +97
[FileLoadException: Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166
System.Reflection.Assembly.Load(String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190
[ConfigurationErrorsException: Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11207304
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +388
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +232
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +210
System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +76
System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +283
System.Web.Compilation.BuildManager.CompileGlobalAsax() +50
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +676
[HttpException (0x80004005): Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +76
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +1012
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +1025
[HttpException (0x80004005): Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11301302
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4338644
7 ответов
У меня была похожая проблема, когда я перестраивал свой компьютер с чистой установкой Windows 7. После охоты вокруг я нашел решение, которое работало на меня.
В дополнительных настройках пула приложений IIS в разделе "Модель процесса" установите для параметра "Загрузить профиль пользователя" значение true.
Есть и другие вещи, которые нужно проверить, например, уровень вашего доверия, но ни одно из них не применимо ко мне (это было полное доверие уже на моей машине разработчика). Настройка пула приложений для загрузки профиля пользователя исправила его.
Я видел эту ошибку в другом случае, когда, например, IIS запускает приложение или виртуальный путь через путь UNC (т.е. \\svr\share\folder
). Даже если Load User Profile=true
Я все еще получил ошибку PolicyException. Эта проблема была решена с помощью инструмента политики безопасности Code Access (Caspol.exe), чтобы добавить полное доверие к пути UNC. Так как у нас были оба 64 bit
а также 32 bit
из.Net 2.x
а также.Net 4.x
Я запустил его во всех четырех средах следующим образом:
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on
%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on
Некоторые замечания предостережения:
- За
.Net 4.x
обязательно включите NetFx40_LegacySecurityPolicy дляtrue
илиcaspol.exe
Команды не будут работать, как ожидалось. Не добавляйте повторяющиеся записи с
caspol.exe
для данной среды. Запустите команды ниже, чтобы просмотреть ваши записи:%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\caspol.exe -a -lg
%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -a -lg
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\caspol.exe -a -lg
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -a -lg
Это проблема безопасности / доверия. Откройте свойства DLL в проводнике Windows. Скорее всего, он помечен как заблокированный, потому что был загружен из Интернета. Перейдите в свойства и нажмите кнопку "разблокировать", и проблема может быть решена.
У нас была похожая проблема с Windows 2008 R2, где наше приложение работало бы нормально в 64-битном режиме, но при переключении на 32-битный режим перестало бы функционировать и выдавало ошибку разрешения, оказывается, в IIS7 в разделе "Дополнительные параметры" >> "Модель процесса" >> Параметр "Идентификация" по умолчанию переключен на "Идентификатор пула приложений", и для работы в 32-битном режиме может потребоваться изменить его на "Сетевая служба".
Мы сделали это, и теперь мы гладко гудим. Полагаю, что эта информация может быть причиной того, что все указывают на разрешения для папок, потому что технически это проблема с разрешениями для папок. Но изменение было в IIS, а не в настройках безопасности самих папок.
Похоже, что это что-то из общего собрания не будет загружать ошибку. Я ценю все остальные посты, так как они стали списком возможных источников ошибки.
Я нашел еще один. Я перепробовал все вышеперечисленное безуспешно. В конце концов я понял, что публикую веб-приложение из Visual Studios Express 2008 с конфигурацией сборки "Debug". После изменения конфигурации сборки на "Выпуск" веб-приложение заработало.
Особенности: Visual Studios Express 2008 перемещает файлы в IIS7.5 на сервере Win 2008 R2.
У меня были похожие проблемы, я решил проблему с помощью следующих шагов:
- Перейти в IIS.
- Щелкните правой кнопкой мыши папку веб-сайта и увидите его пул приложений.
- Щелкните правой кнопкой мыши пул приложений и перейдите к дополнительным настройкам.
- В разделе модели процесса установлено
load user profile
вtrue
Ее проблема заключается в использовании ddl не доверять SharePoint для решения проблемы:
- открыть IIS
- нажмите на.net истинные уровни
- выбрал полный (внутренний)
Старый вопрос, но мой ответ был удален, потому что я только разместил ссылку.
может быть, вы получите эту ошибку: ОШИБКА:
Не удалось загрузить файл или сборку 'Microsoft.Practices.EnterpriseLibrary.Configuration.Design, версия =2.0.0.0, культура = нейтральная, PublicKeyToken=null' или одна из ее зависимостей. Не удалось предоставить минимальные запросы на разрешение. (Исключение из HRESULT: 0x80131417)
Эта ошибка возникает из-за того, что уровень доверия по умолчанию для локальной машины - "Полное доверие", а в общем сетевом ресурсе - нет.
Таким образом, для удаленной компиляции приложений вам необходимо: Перейти в Панель управления -> Средства администрирования -> Конфигурация Microsoft .NET Framework 2.0 Откройте Мой компьютер-> Политика безопасности времени выполнения -> Машина> Группы кодов> Весь код> Новый (щелкните правой кнопкой мыши, чтобы отобразить меню для выбора New)
Поле URL на следующем рисунке - это путь к общей папке, в данном случае, но вы можете выбрать Строгие имена (для.exe или.dll) и т. Д.
Нажмите Готово, и вы можете скомпилировать свое приложение!
https://medium.com/@marcoscavaleiro/failed-to-grant-minimum-permission-requests-7245cf694ebd
В дополнительных настройках пула приложений IIS 6.0 в разделе "Модель процесса" установите для параметра "Загрузить профиль пользователя" значение true.
Есть и другие вещи, которые нужно проверить, например, уровень вашего доверия, но ни одно из них не применимо ко мне (это было полное доверие уже на моей машине разработчика). Настройка пула приложений для загрузки профиля пользователя исправила его.
что поможет решить
необходимые разрешения не могут быть получены в iis для ее решения..