web-dev-qa-db-fra.com

IIS Express 8 - Impossible d'écrire le fichier de configuration

J'essaie d'utiliser IIS Express 8 pour un site MVC dans VS2012. Je reçois le message d'erreur suivant chaque fois que je tente de créer le site:

Nom de fichier: \?\C:\Users\xxxxxx\Documents\IISExpress\config\applicationHost.config
Erreur: Impossible d'écrire le fichier de configuration

Existe-t-il un moyen de forcer IIS Express à utiliser un emplacement différent pour les dossiers config & logs? Je comprends que je peux pointer vers un emplacement différent lorsque j’exécute iisexpress.exe à partir de la ligne de commande, mais je n’ai aucun contrôle sur cela lors de l’utilisation de Visual Studio.

Sinon, quelqu'un a-t-il des suggestions sur les raisons d'une erreur? (Remarque: mon ordinateur portable se trouve dans un environnement d'entreprise qui comporte un cryptage stupide sur le dossier "Documents", mais je n'ai rencontré aucun problème avec les autres logiciels qui enregistrent à cet emplacement. J'ai également donné le groupe "Tous" complet accès au dossier.)

EDIT - Après avoir suivi les instructions de http://learn.iis.net/page.aspx/1286/iis-80-express-readme/ Je n'arrive toujours pas à faire fonctionner cela. J'ai essayé ce qui suit:

  • Ajout de la clé de registre HKCU\Software\Microsoft\IISExpress\CustomUserHome pointant vers mon répertoire de remplacement
  • Ajout de la clé de registre HKCU\Software\Microsoft\IISExpress\8.0\CustomUserHome pointant vers mon autre répertoire
  • Ajout de la clé de registre HKLM\Software\Microsoft\IISExpress\CustomUserHome pointant vers mon répertoire de remplacement
  • Ajout de la clé de registre HKLM\Software\Microsoft\IISExpress\8.0\CustomUserHome pointant vers mon répertoire de remplacement
  • Définition de la variable d’environnement% IIS_USER_HOME% pointant vers mon autre répertoire.

D'autres suggestions?

31
Brad Leach

@ Brad

J'ai eu ton même problème tout à l'heure. Supprimer le chiffrement sur le dossier IISExpress et l'attribut "Lecture seule" l'ont résolu. Dans mon entreprise, les documents sont également cryptés, mais je ne pense pas que supprimer ce cryptage d'IISExpress poserait un problème.

J'espère que cela t'aides.

52
Alejandro Nagy

J'ai eu un message d'erreur très similaire causé par un problème complètement différent.

L'erreur:

C:\VS\TFS_Projects\SomeSolution\SomeProject\SomeProject.csproj: erreur: Création du répertoire virtuel http: // localhost: 55063/ a échoué avec l’erreur suivante: Nom du fichier: \\?\C :\VS\TFS_Projects\SomeSolution.vs\config\applicationhost.config Erreur: Impossible d'écrire le fichier de configuration en raison d'autorisations insuffisantes

Plus de détails: Je ne pouvais même pas ouvrir le projet, car son ouverture échouerait.

Je pouvais obtenir des modifications antérieures, et elles s'ouvriraient bien, mais si j'avais les dernières informations, les projets ne pourraient être ouverts.

Solution: Dans mon cas, il s'est avéré que lorsque nous avons changé de serveur TFS, quelqu'un avait ajouté le dossier ".vs" au contrôle de source avec tout le reste. Sous lequel un développeur avait son applicationhost.config configuré pour exécuter des sites sur un lecteur D: \, alors que je n’avais aucun lecteur D:\(eh bien, c’était un lecteur de DVD.), J’ai pu obtenir cela fonctionne en trouvant un changeset précédent avec le fichier applicationhost.config non modifié et en remplaçant mon fichier local. (J'aurais pu essayer de supprimer le dossier, mais je ne suis pas allé dans cette voie.)

Ensuite, nous avons supprimé le dossier ".vs" du contrôle de source.

(J'ai mis cette solution ici parce que c'est là que google m'a atterri, afin que les autres personnes ayant ce message d'erreur puissent trouver que les solutions ci-dessus ne le corrigent pas, et qu'elles risquent donc d'avoir ce problème.)

8
Greg

Je suis également dans un environnement d'entreprise avec le chiffrement sur le dossier des utilisateurs, et supprimer le chiffrement et supprimer les indicateurs de lecture seule sur tout le contenu du dossier IISExpress a fonctionné pour moi.

5
Sam

J'utilise Visual Studio 2017 sur Windows 10 et pour résoudre ce problème, j'ai dû désactiver le paramètre OneDrive "Économiser de l'espace et télécharger les fichiers au fur et à mesure de l'utilisation". Après avoir modifié les paramètres, mon ordinateur est tombé en panne, mais après le redémarrage, j'ai pu modifier SSL activé et tout a fonctionné.

2
pwhe23

Pour quiconque googler cela; cela pourrait être le même problème que ceci: http://connect.Microsoft.com/VisualStudio/feedback/details/878812/use-iis-express-is-broken-in-vs-2012-on-windows-8 -1

Vous pouvez le vérifier en téléchargeant Prcocess Monitor et en l'exécutant avec un filtre pour "Chemin" contenant "\ Documents\IISExpress\config", puis essayez de modifier le projet pour qu'il utilise IIS Express. S'il existe une entrée CreateFile avec le résultat 0xC0190052 parmi les dernières entrées, il s'agit du même problème.

2
poizan42

C:\Utilisateurs\xxxxxx\Documents\IISExpress\config\applicationHost.config

Désélectionnez l'attribut en lecture seule du fichier. Cela a fonctionné pour moi.

1
HuckFin.7b

J'avais le même problème auparavant, l'exécution de Visual Studio en tant qu'administrateur (Exécuter en tant qu'administrateur) a résolu le problème.

0
Kannan

J'ai reçu la même erreur mais dans un contexte différent. L’ouverture d’un projet (fichier .csproj) fourni par un autre développeur a renvoyé cette erreur et n’a rien pu faire:

Création du répertoire virtuel http: // localhost: 58753/
a échoué avec l'erreur: Nom de fichier: \?\C:\Users\xxxxx\Documents\Clients\xxx\Gen II\xxx \, vs\config\applicationhost.config Erreur: Impossible d'écrire le fichier de configuration

J'ai supprimé les attributs Encryption et R/O du répertoire contenant les fichiers du projet et appliqué à tous les sous-dossiers et fichiers. Visual Studio peut maintenant lire le projet.

0
mnemotronic

J'ai également eu le problème et j'ai essayé de le réparer en définissant la clé de registre dans HKCU\Software\Microsoft qui ne fonctionnait pas.

L’erreur que j’ai commise a été d’utiliser HKCU car, comme je n’ai pas l’autorisation de modifier le registre sous un compte normal (que j’utilise pour exécuter visual studio), j’utilisais un compte administratif. Ensuite, bien sûr, HKCU était pour ce compte.

J'ai donc simplement utilisé HKEY_USERS\"SID de mon utilisateur normal" à la place et, lors du démarrage manuel de iisexpress.exe, il a créé ses fichiers à l'emplacement indiqué. Ce qui n'a toujours pas fonctionné, c'est d'utiliser iisexpress de Visual Studio. Il semblait toujours que VS n'utilisait pas du tout le paramètre de registre.

Enfin, j’ai eu recours à la définition d’un chemin non UNC pour Shell Folders\Personal et User Shell Folders\Personal dans HKU\"SID de mon utilisateur normal"\Software\Microsoft\Windows\CurrentVersion\Explorer \, ce qui a tout gâché.

0
Christian

L'ajout de l'entrée de registre a semblé fonctionner, mais l'utilisation de variables d'environnement dans l'entrée de registre n'a pas fonctionné. Dans mon environnement, seul notre répertoire de documents est redirigé. Je souhaitais simplement déplacer le répertoire de configuration IIS Express d’un niveau supérieur vers le répertoire% USERPROFILE%. Cependant, cela n'a pas fonctionné. IIS Express a lu la variable d'environnement à la lettre et n'a bien sûr pas pu s'exécuter.

0
sresnik

Dans mon cas, j'ai déplacé le dossier vers un autre emplacement. J'ai donc dû modifier le fichier applicationhost.config et modifié l'entrée du répertoire virtuel au nouvel emplacement. Supprimer le cryptage et désactiver la lecture seule n'a pas aidé. J'imagine que si je l'avais simplement copié au lieu de le déplacer, cela aurait heureusement continué à fonctionner.

0
LordWabbit

Après avoir lutté avec cela, vérifié les attributs de chiffrement et en lecture seule et les ayant empêchés de fonctionner, ma solution a été la suivante:

  • Accédez au dossier contenant le dossier IISExpress (dans mon cas, c'était dans mon dossier OneDrive, pas dans Documents).
  • Faites un clic droit sur le dossier IISExpress> onglet Sécurité> bouton Avancé
  • Changez de propriétaire pour vous, même si c'est déjà le cas
  • Cochez la case "Remplacer le propriétaire des sous-conteneurs et des objets"
    • Cela peut ne pas apparaître avant d'avoir complété la boîte de dialogue Changer de propriétaire
  • Ouvrez le dossier IISExpress
  • Faites un clic droit sur le dossier config> onglet Sécurité> bouton Avancé
  • Ajouter un utilisateur> Ajouter un principal
  • Changer l'emplacement sur la machine locale (et non un domaine)
  • Entrez le nom NETWORK SERVICE et "Vérifier les noms"
  • Appuyez sur OK pour revenir à la boîte de dialogue Sécurité avancée.
  • Assurez-vous de cocher "Remplacer toutes les entrées d'autorisation d'objet enfant par des entrées d'autorisation pouvant être héritées de cet objet"

Utilisation de Windows 10 avec IISExpress 10 pour VS 2013 et VS 2017.

0
Web Head