IIS Express 8-ne peut pas écrire le fichier de configuration
j'essaie d'utiliser IIS Express 8 pour un site MVC en VS2012. J'obtiens l'erreur suivante lorsque je tente de créer le site:
nom du fichier: ?*C:UsersxxxxxxDocumentsIISExpressconfigapplicationHost.config
Erreur: ne peut pas écrire le fichier de configuration
y a-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 autre endroit quand je cours iisexpress.exe de la ligne de commande, mais je n'ai aucun contrôle sur cela en utilisant Visual Studio.
alternativement, quelqu'un a-t-il des suggestions sur la raison de l'erreur? (Note latérale: mon ordinateur portable est dans un environnement d'entreprise qui a un cryptage stupide sur le dossier "Documents", cependant je n'ai pas eu de problèmes avec d'autres logiciels qui sauve à cet endroit. J'ai aussi donné le groupe "Tous" un accès complet au dossier.)
modifier-après avoir suivi les instructions à http://learn.iis.net/page.aspx/1286/iis-80-express-readme/ Je n'arrive toujours pas à y arriver. J'ai essayé le code suivant:
- ajout D'une clé de Registre HKCUSoftwareMicrosoftIISExpressCustomUserHome pointant vers mon répertoire alternatif
- ajouté HKCUSoftwareMicrosoftIISExpress8.0CustomUserHome registry key pointing to my alternate directory
- Ajout de HKLMSoftwareMicrosoftIISExpressCustomUserHome clé de registre qui pointe sur mon autre répertoire
- ajouté HKLMSoftwareMicrosoftIISExpress8.0CustomUserHome registry key pointing to my alternate directory
- définition de la variable d'environnement %IIS_USER_HOME% pointant vers mon répertoire alternatif.
d'autres suggestions?
12 réponses
@Brad
j'ai eu le même problème tout à l'heure. La suppression du cryptage sur le dossier IISExpress et l'attribut "Read Only" l'ont résolu. Dans mon entreprise, les Documents sont aussi cryptés, mais je ne pense pas que supprimer ce cryptage de IISExpress serait un problème de quelque nature que ce soit.
J'espère que cela vous aidera.
je suis également dans un environnement d'entreprise avec le cryptage sur le dossier Utilisateurs, et la suppression du cryptage et la suppression des drapeaux de lecture seule sur tout ce qui dans le dossier IISExpress a fonctionné pour moi.
j'ai eu un message d'erreur similaire causée par un tout autre problème.
L'Erreur:
C:\VS\TFS_Projects\SomeSolution\SomeProject\SomeProject.csproj : erreur : Création du répertoire virtuel http://localhost:55063/ impossible avec l'erreur: nom de fichier: \\?*C:\VS\TFS_Projects\SomeSolution.vs\config\applicationhost.config Erreur: ne peut pas écrire le fichier de configuration en raison d'une insuffisance les autorisations
plus de détails: je ne pouvais même pas ouvrir le projet, car l'ouvrir serait un échec.
je pourrais obtenir des changesets précédents, et ils s'ouvriraient en fait très bien, mais si j'obtenais le dernier les projets ne pourraient pas être ouverts.
Solution: dans mon cas, il s'est avéré que lorsque nous avons changé de serveur TFS, quelqu'un avait ajouté le ".vs" dossier de contrôle de code source avec tout le reste. En vertu de laquelle, un développeur avait son applicationhost.config mis en place pour exécuter des sites sur un lecteur D:\, alors que je n'avais pas de tel lecteur D:\ (bien, c'était un lecteur de DVD.) J'ai pu obtenir ce travail en trouvant un jeu de modifications préalables avec le non-modifié applicationhost.config et remplacer mon fichier local. (J'aurais pu essayer de supprimer le dossier, mais je n'ai pas pris cette voie.)
après, nous avons supprimé le ".vs" le dossier à partir du contrôle de code source.
(j'ai mis cette solution-là, parce que là où google m'a débarqué, donc d'autres personnes ayant ce message d'erreur peut trouver les solutions ci-dessus ne résolvent pas pour eux, et donc ils pourraient avoir ce problème.)
Pour quelqu'un googler ce, ce qui peut être le même problème comme 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 l'exécuter avec un filtre pour "Path" contient "\Documents\IISExpress\config" et puis essayer de changer le projet pour utiliser IIS Express. S'Il ya une entrée CreateFile avec le résultat 0xc0190052 comme l'un des derniers entrées alors c'est le même problème.
C:\Users\xxxxxx\Documents\IISExpress\config\applicationHost.config
décochez l'attribut en lecture seule du fichier. Il a travaillé pour moi.
j'utilise Visual Studio 2017 sur Windows 10 et pour résoudre ce problème, j'ai dû désactiver le OneDrive paramètre "Économiser de l'espace et de télécharger des fichiers comme vous les utiliser". Après avoir changé le réglage, mon ordinateur s'est écrasé, mais après avoir redémarré, J'ai pu changer SSL activé et tout a fonctionné.
ajouter l'entrée du registre a semblé fonctionner, cependant, en utilisant des variables d'environnement dans l'entrée du registre n'a pas. Dans mon environnement, seul notre répertoire de documents est redirigé, donc je voulais simplement déplacer le répertoire de configuration IIS Express d'un niveau supérieur au répertoire %USERPROFILE%. Toutefois, cela ne fonctionne pas. IIS Express lire la variable d'environnement littéralement et bien sûr n'a pas fonctionné.
j'ai déjà eu le même problème, exécuter VisualStudio comme administrateur (exécuter comme administrateur) a résolu le problème.
j'ai également eu le problème et j'ai essayé de le corriger en définissant la clé de Registre dans HKCU\Software\Microsoft qui n'a pas fonctionné.
l'erreur que j'ai faite, était d'utiliser HKCU parce que, puisque je n'ai pas les permissions pour éditer le Registre sous par le compte normal (que j'utilise pour exécuter visual studio), j'utilisais un compte administratif. Alors, bien sûr, HKCU était pour ce compte.
J'ai donc utilisé HKEY_USERS\"my normal user's SID" à la place et, en démarrant iisexpress.EXE manuellement, il a créé ses fichiers à l'emplacement indiqué. Ce qui n'a pas marché, c'est l'utilisation de IISExpress de visual studio. Il semble toujours que VS n'a pas utilisé le réglage du registre du tout.
finalement j'ai eu recours à la définition d'un chemin Non UNC pour les dossiers Shell\dossiers Shell personnels et D'utilisateur\personnel dans HKU\"SID de mon utilisateur normal"\Software\Microsoft\Windows\CurrentVersion\Explorer\ qui a fait le tour.
j'ai reçu la même erreur mais dans un contexte différent. L'ouverture d'un projet (.csproj) fourni par un autre développeur a retourné cette erreur et n'a rien fait:
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: ne peut pas écrire le fichier de configuration
je l'ai enlevé le chiffrement et l'attribut R / O du répertoire contenant les fichiers du projet s'appliquent à tous les sous-dossiers et fichiers. Visual Studio peut maintenant lire le projet.
Dans mon cas, j'ai déplacé le dossier à un autre endroit, j'ai donc dû modifier le applicationhost.fichier de configuration et a changé l'entrée virtualdirectory au nouvel emplacement. La suppression du cryptage et le réglage read only off n'ont pas aidé. J'imagine que si je l'avais simplement copié au lieu de le déplacer, il aurait continué à travailler avec plaisir.
après avoir lutté avec ceci, et vérifier le cryptage et les attributs en lecture seule, et les avoir ne fonctionne pas, ma solution a fini par être:
- naviguer vers le dossier contenant le dossier IISExpress (dans mon cas, c'était dans mon dossier OneDrive, pas dans le dossier Documents)
- clic Droit sur
IISExpress
dossier > onglet Sécurité > bouton Avancé - changez de propriétaire pour vous-même, même si c'est déjà
- cochez la case " Remplacer le propriétaire sur les sous-containers et les objets" boîte
- cela n'apparaîtra peut-être pas tant que vous n'aurez pas terminé la boîte de dialogue Changement de propriétaire
- Ouvrir
IISExpress
dossier - clic Droit sur
config
onglet > Sécurité > bouton Avancé - Ajouter un utilisateur > Ajouter des principaux
- Changement d'emplacement de la machine locale (et non d'un domaine)
- Entrez le nom
NETWORK SERVICE
et "Check Names" - appuyez sur OK pour revenir à la boîte de dialogue avance de sécurité
- assurez-vous de vérifier "Remplacer toutes les entrées de permission d'un objet enfant par des entrées de permission héritées de cet objet"
travaillé sous Windows 10 avec IISExpress 10, pour VS 2013 et VS 2017.