Question

Salut à tous. J'essaie de résoudre un problème qui n'est apparemment pas inhabituel et je ne sais pas comment trouver comment cela a été résolu pour les gens. Lorsque j'exécute StructureMap sur ma machine via IIS, une exception se présente et ressemble à ceci:

**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.

Cette question a été soulevée ici par 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"> dans les commentaires de cet article de blog et il y a environ un an sur la liste de diffusion de structuremap .

Mon problème n'est pas de l'exécuter dans un environnement d'hébergement étranger. Je ne peux même pas le faire fonctionner sur ma propre boîte (IIS 7.5, Win7 RC, .NET 3.5). J'ai essayé de configurer le site pour utiliser un fichier de stratégie personnalisé et FileIOPermission est marqué pour avoir un accès illimité ... pas de dés. Si quelqu'un a des conseils ou un lien, ce serait grandement apprécié.

Mettre à jour Donc, il n’ya aucun moyen que ce soit la meilleure façon de résoudre le problème, mais après avoir fouillé et examiné ce que Joshua a mentionné, voici ce que je devais faire pour que cela fonctionne: StructureMap, accès au code Sécurité et mauvaise solution à un problème . Une meilleure solution serait appréciée.

Était-ce utile?

La solution

Ceci est un bug qui a été corrigé dans le coffre. Il sera inclus dans les versions 2.6+. Certaines versions antérieures de StructureMap tentaient soit d'écrire inutilement les assemblages dynamiques sur le disque, soit inutilement de lire à partir du système de fichiers.

Si vous travaillez dans un environnement restreint qui n'autorise pas l'accès aux chemins complets du système de fichiers (ASP.NET), veillez à définir IgnoreDefaultFile = true lors de la configuration de votre conteneur. N'oubliez pas que cela désactivera la possibilité de charger la configuration XML à partir de StructureMap.config.

Autres conseils

Pour ce qui en vaut la peine, j’ai rencontré le même problème, dans lequel j’avais le contrôle total de la boîte et j’ai même défini toutes les autorisations en toute confiance. Avec IIS 7.5, je devais modifier l'identité utilisée pour le pool d'applications spécifique en NetworkService au lieu de ApplicationPoolIdentity. Une fois que j'ai redémarré IIS, cela a fonctionné.

Pour votre information, j'utilise StructureMap v2.6.1 et j'ai rencontré ce problème.

Comme je n'utilise pas de configuration XML, j'ai ajouté la ligne suivante à mon code de configuration, ce qui a résolu le problème.

IgnoreStructureMapConfig = true;

En utilisant la version officielle de StructureMap 2.5.4 sur Windows 7 avec IIS 7.5, je rencontrais toujours ce problème. Le changement de Mallioch

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

était nécessaire pour résoudre l'exception FileIOPermission mais j'ai ensuite reçu une demande d'autorisation de type & # 8216; System.Web.AspNetHostingPermission, System, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 & # 8242; que j'ai résolu avec la solution de Mike (pour laquelle j'ai créé un Visualisation pas à pas ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top