2012-09-12 2 views
0

J'essaie de mettre à jour un appSetting dans le web.config dans une application MVC3 fonctionnant en confiance moyenne. Il échoue dès que j'essaie d'appeler?Impossible de modifier AppSetting dans Web.Config Dans Trust moyen?

var config = WebConfigurationManager.OpenWebConfiguration("~"); 

Essayé d'autres variations, mais ils semblent tous jeter cette erreur.

System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed. 

Quelqu'un sait comment le faire en moyenne confiance? Toute aide serait grandement appréciée.

Répondre

2

Réponse courte: ce n'est pas possible avec Trust moyen. Réponse longue: le fichier web.config hérite en réalité d'un tas de paramètres depuis les web.configs au niveau de la machine. Par conséquent, lorsque vous accédez aux classes AppSettings Configuration & à partir de l'ouverture d'un fichier .config donné, il est en lecture seule (car c'est ce que le système vous permet de faire), mais lance l'autorisation FileIO lors de l'écriture, car les classes ont pour déterminer quelque part la pile d'appels qu'ils ont l'autorisation d'écrire dans la configuration correcte (dossier, hérité ou machine) avant d'écrire votre nouveau paramètre (en fonction de le paramètre a été défini dans la hiérarchie d'héritage). N.B. Cela devait être corrigé dans .NET4 ... Je me souviens avoir vu un lien sur le site Microsoft Connect quelque part à ce sujet.

Résumé: Utiliser l'analyse XML/XSLT.

Questions connexes