Pregunta

Howdy all. Estoy tratando de resolver un problema que aparentemente no es raro y no estoy seguro de cómo encontrar la forma en que esto se resolvió para la gente. Cuando ejecuto StructureMap en mi máquina a través de IIS obtengo una excepción y se ve así:

**Description**: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
**Exception Details**: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Esta pregunta ha surgido aquí en SO ( https://stackoverflow.com/questions/784666/ ), < a href = "http://codebetter.com/blogs/jeremy.miller/archive/2008/11/30/a-gentle-quickstart-for-structuremap-2-5.aspx" rel = "nofollow noreferrer"> in los comentarios en esta publicación de blog y hace aproximadamente un año en la lista de correo de structuremap .

Mi problema no es ejecutarlo en un entorno de alojamiento externo. Ni siquiera puedo hacer que se ejecute en mi propia caja (IIS 7.5, Win7 RC, .NET 3.5). He intentado configurar el sitio para usar un archivo de políticas personalizado y el FileIOPermission está marcado para tener acceso sin restricciones ... no dados. Si alguien tiene algunos consejos o un enlace, sería muy apreciado.

Actualizar Por lo tanto, no hay forma de que esta sea la mejor manera de resolver el problema, pero después de investigar y analizar lo que Joshua mencionó, estas son las cosas que tuve que hacer para que funcionara: StructureMap, Code Access Seguridad y una mala solución a un problema . Una mejor solución sería apreciada.

¿Fue útil?

Solución

Esto es un error, y se ha corregido en el tronco. Se incluirá en las versiones 2.6+. Algunas versiones anteriores de StructureMap intentarían escribir innecesariamente los ensamblados dinámicos en el disco o intentar leer innecesariamente desde el sistema de archivos.

Si está ejecutando en un entorno restringido que no permite el acceso a rutas completas en el sistema de archivos (ASP.NET), asegúrese de configurar IgnoreDefaultFile = true cuando configure su contenedor. Tenga en cuenta que esto deshabilitará la capacidad de cargar la configuración XML desde StructureMap.config.

Otros consejos

Por lo que vale la pena, me encontré con este mismo problema donde tenía control total sobre la caja e incluso establecía todos los permisos en plena confianza. Con IIS 7.5, tuve que cambiar la identidad utilizada para el grupo de aplicaciones específicas a NetworkService en lugar de ApplicationPoolIdentity. Una vez que reinicié IIS, funcionó.

Para su información, estoy usando StructureMap v2.6.1 y me encontré con este problema.

No uso una configuración XML, así que agregué la siguiente línea a mi código de configuración, que solucionó el problema.

IgnoreStructureMapConfig = true;

Al utilizar la compilación oficial de StructureMap 2.5.4 en Windows 7 con IIS 7.5, todavía encontré este problema. El cambio de Mallioch

  ObjectFactory.Initialize(x =>
    {
      x.UseDefaultStructureMapConfigFile = false;
      x.IgnoreStructureMapConfig = true;

fue necesario para resolver la excepción FileIOPermission pero luego recibí la solicitud de para el permiso de tipo & # 8216; System.Web.AspNetHostingPermission, System, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 & # 8242; fallido. que resolví usando la solución de Mike (para la que he creado un visualización paso a paso ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top