IIS7 no pudo conceder solicitudes de permiso mínimo

Recibo este error cuando uso FileHelpers.dll, pero mi IIS está configurado en nivel de plena confianza, por lo que no debería ser así.

Esa es la traza de la stack completa:

[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.ComstacktionSection.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.ComstacktionSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11207304 System.Web.Configuration.ComstacktionSection.LoadAllAssembliesFromAppDomainBinDirectory() +388 System.Web.Configuration.ComstacktionSection.LoadAssembly(AssemblyInfo ai) +232 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48 System.Web.Comstacktion.BuildManager.GetReferencedAssemblies(ComstacktionSection compConfig) +210 System.Web.Comstacktion.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +76 System.Web.Comstacktion.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +283 System.Web.Comstacktion.BuildManager.CompileGlobalAsax() +50 System.Web.Comstacktion.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.Comstacktion.BuildManager.ReportTopLevelComstacktionException() +76 System.Web.Comstacktion.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 

Tuve un problema similar cuando reconstruí mi máquina de desarrollo con una instalación limpia de Windows 7. Después de buscar descubrí una solución que funcionó para mí.

En la configuración avanzada del conjunto de aplicaciones de IIS, en “Modelo de proceso”, establezca Cargar perfil de usuario en verdadero.

Hay otras cosas para verificar, como su nivel de confianza, pero ninguna de ellas se aplicó a mí (ya tenía plena confianza en mi máquina de desarrollo). Configurar el grupo de aplicaciones para cargar el perfil de usuario lo solucionó.

He visto este error en otra instancia donde, por ejemplo, IIS ejecuta una aplicación o ruta virtual a través de una ruta UNC (es decir, \\svr\share\folder ). Incluso si Load User Profile=true todavía tengo el error PolicyException. Fue resuelto ejecutando la herramienta de política de seguridad de acceso de código (Caspol.exe) para agregar plena confianza a la ruta UNC. Como teníamos tanto 64 bit como 32 bit de .Net 2.x .Net 4.x , lo ejecuté en los cuatro entornos de la siguiente manera:

 %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 

Algunas notas de precaución:

  • Para .Net 4.x asegúrese de habilitar NetFx40_LegacySecurityPolicy en true o los comandos caspol.exe no funcionarán como se esperaba.
  • No agregue entradas duplicadas con caspol.exe para un entorno determinado. Ejecute los siguientes comandos para ver sus entradas:

    %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

Tuvimos un problema similar con Windows 2008 R2 donde nuestra aplicación funcionaría bien en el modo de 64 bits, pero cuando se cambió al modo de 32 bits dejaría de funcionar y arrojaría el error de permiso, resulta en IIS7 en Configuración avanzada >> Modelo de proceso >> el La configuración de “Identidad” se cambió a “Identidad del grupo de aplicaciones” de forma predeterminada y es posible que deba cambiarse a “Servicio de red” para que funcione en el modo de 32 bits.

Hicimos eso y ahora estamos tarareando sin problemas. Supuse que esta información podría ser la razón por la que todo el mundo apunta a los permisos de la carpeta, ya que técnicamente es un problema de permiso de la carpeta. Pero el cambio fue en IIS y no en la configuración de seguridad de las carpetas.

Parece que esto es algo genérico. El ensamblado no cargará el error. Aprecio todas las otras publicaciones ya que se convirtieron en una lista de posibles fonts del error.

Encontré uno más. Había intentado todo lo anterior sin éxito. Finalmente me di cuenta de que estaba publicando la aplicación web de Visual Studios Express 2008 con una configuración de Build de ‘Debug’. Después de cambiar la configuración de comstackción a ‘versión’, la aplicación web funcionó.

Particularidades: Visual Studios Express 2008 mueve archivos a IIS7.5 en el servidor Win 2008 R2.

Tuve problemas similares, resolví el problema con los siguientes pasos:

  1. Ir a IIS.
  2. Haga clic derecho en la carpeta del sitio web y vea su grupo de aplicaciones.
  3. Haga clic derecho en el grupo de aplicaciones y vaya a la configuración avanzada.
  4. En la sección de modelo de proceso, establezca load user profile en true

El problema al que pertenece es usar ddl no confiar para que el SharePoint resuelva el problema:

  1. abre el IIS
  2. haga clic en .net niveles más verdaderos
  3. eligió completo (interno)

En la configuración avanzada del grupo de aplicaciones de IIS 6.0, en “Modelo de proceso”, establezca Cargar perfil de usuario en verdadero.

Hay otras cosas para verificar, como su nivel de confianza, pero ninguna de ellas se aplicó a mí (ya tenía plena confianza en mi máquina de desarrollo). Configurar el grupo de aplicaciones para cargar el perfil de usuario lo solucionó.

eso ayuda a resolver

los permisos requeridos no se pueden adquirir en iis para resolverlo ..