2010-05-08 22 views
8

Estoy desarrollando una aplicación ASP.NET MVC con NHibernate y estoy tratando de utilizar AutoMapper para ocultar los objetos de dominio de la DTO objetos enviados a la vista:¿Cómo me deshago del error de SecurityException al intentar usar Automapper en ASP.NET MVC?

  1. ClassLibrary con mi dominio (por NHibernate) y DTO objetos de biblioteca de clase
  2. hacer una SessionFactory y fábricas en mi proyecto

he descargado AutoMapper para transformar objetos de dominio en DTO y añadí el código para hacer esto en Application_Start.

Cuando ejecuto la aplicación en VisualStudio (presionando F5) funciona bien y mis DTO se asignan a la vista.

Cuando publico presente en IIS, recibo una excepción de seguridad:

Mapper.CreateMap<Category, CategoryDto>(); 
Mapper.CreateMap<Product, ProductDto>(); 

System.Security.SecurityException: Error solicitud de permiso de tipo 'System.Security.Permissions.ReflectionPermission mscorlib Versión = 2.0.0.0, Cultura = neutral, PublicKeyToken = b77a5c561934e089 '.

¿Cómo consigo que Automapper funcione sin la excepción de seguridad?

Respuesta

3

que necesita para hacer funcionar su IIS en plena confianza con el fin de tener permiso de reflexión, mira aquí reflection permission

o aquí set trust level

you need this because Automapper uses reflection to emit code o_O 
13

Haga clic derecho sobre el AutoMapper.dll> seleccione Propiedades> Desatascar.

continuación, reinicie IIS

+0

Gracias hombre, lo intentaré también! –

+0

Ya corría con plena confianza y me quedé desconcertado hasta que me di cuenta de que mi AutoMapper.dll estaba "bloqueado". Buena atrapada. – daveidmx

+0

Tuve que eliminar la referencia de mi proyecto y volver a agregarla después de desbloquearla para que funcione. –

0

Desbloquear el DLL (como se ha mencionado por Lee, haga clic derecho en el AutoMapper.dll> seleccione Propiedades> Desbloquear.), Y luego simplemente reciclar grupo de aplicaciones del sitio. No es necesario reiniciar IIS.

Cuestiones relacionadas