IIS7 не удалось предоставить минимальные запросы разрешений - PullRequest
32 голосов
/ 04 декабря 2009

Я получаю эту ошибку, когда использую 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

Ответы [ 8 ]

83 голосов
/ 04 декабря 2009

У меня была похожая проблема, когда я перестраивал свой компьютер с чистой установкой Windows 7. После охоты вокруг я нашел решение, которое работало на меня.

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

Есть и другие вещи, которые нужно проверить, например, уровень вашего доверия, но ни одно из них не применимо ко мне (это было полное доверие уже на моей машине разработчика). Настройка пула приложений для загрузки профиля пользователя исправила его.

21 голосов
/ 04 марта 2012

Я видел эту ошибку в другом случае, когда, например, 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 не будут работать должным образом.
  • Do not добавить дубликаты записей с 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

2 голосов
/ 29 сентября 2012

Похоже, что это что-то общего в сборке не приведет к ошибке загрузки. Я ценю все остальные посты, так как они стали списком возможных источников ошибки.

Я нашел еще один. Я попробовал все вышеперечисленное безуспешно. Наконец я понял, что публикую веб-приложение из Visual Studios Express 2008 с конфигурацией сборки «Debug». После изменения конфигурации сборки на «Выпуск» веб-приложение заработало.

Особенности: Visual Studios Express 2008 перемещает файлы в IIS7.5 на сервере Win 2008 R2.

2 голосов
/ 17 декабря 2010

У нас была похожая проблема с Windows 2008 R2, где наше приложение работало бы нормально в 64-битном режиме, но при переключении в 32-битный режим перестало бы функционировать и выдавало ошибку разрешения, оказывается, в IIS7 в разделе «Дополнительные параметры» >> «Модель процесса» >> параметр «Идентификация» по умолчанию переключен на «Идентификация пула приложений», и для работы в 32-битном режиме может потребоваться изменить его на «Сетевая служба».

Мы сделали это, и теперь мы гладко гудим. Полагаю, что эта информация может быть причиной того, что все указывают на разрешения для папок, потому что технически это проблема с разрешениями для папок. Но изменение было в IIS, а не в настройках безопасности самих папок.

1 голос
/ 04 января 2017

проблема ее в том, чтобы использовать ddl не доверять SharePoint чтобы решить проблему:

  1. открыть IIS
  2. нажмите на .net достоверные уровни
  3. выбрал полный (внутренний)
1 голос
/ 14 ноября 2016

У меня были похожие проблемы, я решил проблему с помощью следующих шагов:

  1. Перейти к IIS.
  2. Щелкните правой кнопкой мыши папку веб-сайта и увидите его пул приложений.
  3. Щелкните правой кнопкой мыши пул приложений и перейдите к дополнительным настройкам.
  4. В разделе модели процесса установите load user profile на true
0 голосов
/ 04 июня 2019

Старый вопрос, но мой ответ был удален, потому что я только разместил ссылку.

возможно, вы получите эту ошибку: ОШИБКА:

Не удалось загрузить файл или сборку ‘Microsoft.Practices.EnterpriseLibrary.Configuration.Design, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = null’ или одна из ее зависимостей. Не удалось предоставить минимальные запросы на разрешение. (Исключение из HRESULT: 0x80131417)

Эта ошибка возникает из-за того, что уровнем доверия по умолчанию для локального компьютера является «Полное доверие», а в общем сетевом ресурсе - нет.

Таким образом, для удаленной компиляции ваших приложений вы должны: Перейдите в Панель управления -> Средства администрирования -> Конфигурация Microsoft .NET Framework 2.0. Откройте Мой компьютер-> Политика безопасности времени выполнения -> Компьютер> Группы кодов> Весь код> Новый (щелкните правой кнопкой мыши, чтобы открыть меню, чтобы выбрать Новый )

Поле URL на следующем рисунке - это путь к общей папке, в данном случае, но вы можете выбрать Строгие имена (для .exe или .dll) и т. Д.

Нажмите Готово, и вы сможете скомпилировать свое приложение !!

https://medium.com/@marcoscavaleiro/failed-to-grant-minimum-permission-requests-7245cf694ebd

0 голосов
/ 01 апреля 2014

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

Есть и другие вещи, которые нужно проверить, например, уровень вашего доверия, но ни одно из них не применимо ко мне (это было полное доверие уже на моей машине разработчика). Настройка пула приложений для загрузки профиля пользователя исправила его.

, которые помогают решить

необходимые разрешения не могут быть получены в iis для ее решения ..

...