2010-05-08 3 views
8

Je développe une application ASP.NET MVC avec NHibernate et je suis en train d'utiliser Automapper pour cacher les objets de domaine de la DTO objets envoyés à la vue:Comment puis-je me débarrasser de l'erreur SecurityException lorsque vous essayez d'utiliser Automapper dans ASP.NET MVC?

  1. ClassLibrary avec mon domaine (pour NHibernate) et les objets DTO
  2. bibliothèque de classe pour faire une SessionFactory et les usines dans mon projet

J'ai téléchargé AutoMapper pour transformer des objets de domaine en DTO et a ajouté le code pour faire en Application_Start.

Lorsque j'exécute l'application dans VisualStudio (en appuyant sur F5), cela fonctionne très bien et mes DTO sont mappés dans la vue.

Quand je publie ceci dans IIS, je reçois une exception de sécurité:

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

System.Security.SecurityException: Echec de la demande pour l'autorisation de type « System.Security.Permissions.ReflectionPermission, mscorlib, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 '.

Comment faire fonctionner Automapper sans l'exception de sécurité?

Répondre

3

vous devez exécuter votre IIS en pleine confiance afin d'avoir l'autorisation de réflexion, regardez ici reflection permission

ou ici set trust level

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

Faites un clic droit sur le AutoMapper.dll> sélectionnez Propriétés> Débloquer.

Ensuite, redémarrez IIS

+0

Merci l'homme, je vais l'essayer aussi! –

+0

Je fonctionnais déjà en toute confiance et j'étais déconcerté jusqu'à ce que je réalise que mon AutoMapper.dll était "bloqué". Bonne prise. – daveidmx

+0

J'ai dû supprimer la référence de mon projet et l'ajouter à nouveau après le déblocage pour que cela fonctionne. –

0

Débloquer le dll (comme mentionné par Lee, cliquez droit sur le AutoMapper.dll> Propriétés sélectionnez> Débloquer.), Et puis juste recycler piscine app du site. Vous n'avez pas besoin de redémarrer IIS.

Questions connexes