2009-10-23 28 views
5

Hola a todos. Estoy tratando de resolver un problema que aparentemente no es raro y no estoy seguro de cómo encontrar la forma de resolverlo para la gente. Cuando corro StructureMap en mi máquina a través de IIS, recibo una excepción y se ve así:StructureMap, IIS 7.5 y FileIOException

**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 llegado hasta aquí en SO (https://stackoverflow.com/questions/784666/), y in the comments on this blog posta year or so ago on the structuremap mailing list.

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

actualización lo que no hay manera de que esta es la mejor manera de resolver el problema, pero después de cavar alrededor y mira en lo que Josué ha mencionado, estas son las cosas que tenía que hacer para que funcione: StructureMap, Code Access Security and a Bad Solution to a Problem. Una mejor solución sería apreciada.

+0

Como se señala en la respuesta aceptada, la forma de manejar esto resultó ser un cambio de código en StructureMap. No fue necesario realizar cambios en la configuración de IIS. – Mallioch

Respuesta

0

Esto es un error, y se ha fijado en el maletero. 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ían 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 establecer IgnoreDefaultFile = true al configurar el contenedor. Tenga en cuenta que esto desactivará la capacidad de cargar la configuración XML desde StructureMap.config.

+0

Estoy usando la versión 2.5.3. No lo construí desde la fuente. – Mallioch

2

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

+0

Esto resolvió el problema para mí. –

0

Usando el funcionario StructureMap 2.5.4 build en Windows 7 con IIS 7.5 todavía me encontré con este problema. cambio de Mallioch

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

era necesario resolver la excepción FileIOPermission pero luego recibieron Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed. cual resolví usando solución de Mike (para el que he creado un step-by-step visualization).

1

FYI, estoy usando V2.6.1 StructureMap y se encontró con este problema.

que no utilizan una configuración de XML, por lo que añade la siguiente línea al código de configuración, que solucionó el problema.

IgnoreStructureMapConfig = true; 
Cuestiones relacionadas