Erreur de compilation CS0016: Impossible d'écrire dans le fichier de sortie
En Bref
Lorsque je tente de parcourir mon site, j'obtiens le message d'erreur suivant:
CS0016: impossible d'écrire dans le fichier de sortie 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\www\xxx\yyy\zzz\a.b.dll' - 'Le nom du répertoire est invalide'
En Détail
J'ai deux sites web sur mon PC de Développement (noms fictifs):
- Web2 - ce qui est écrit dans ASP.NET à l'aide de .NET 3.5 et s'exécute dans un pool d'applications qui traite de la v2.0 .NET framework et fonctionne dans un mode Intégré. Ceci est développé à l'aide de Visual Studio 2010
- Web4 - ce qui est écrit dans ASP.NET à l'aide de .NET 4.5 et s'exécute dans un pool d'applications qui traite de la v4.0 .NET framework et fonctionne dans un mode Intégré. Ceci est développé à l'aide de Visual Studio 2012.
Récemment, j'ai travaillé dans VS2012 sur Web4 presque constamment et il fonctionne très bien, mais l'autre jour j'ai essayé d'exécuter Web2 et a obtenu l'exception affichés ci-dessus.
Bizarrement, partie de la voie (que j'ai remplacée ci-dessus avec les lettres "zzz") semblent pointer vers une langue allemande chemin, puisque c'est "\de-de\" - je ne suis pas d'exploitation en allemand, donc je n'ai aucune idée d'où lui vient cette idée.
Une chose qui est presque certainement à l'onu, mais pour une raison inconnue, je pense qu'il est important de mentionner: j'ai été à l'aide de l'outil d'Analyse des Performances dans Visual Studio 2012, le jour avant que ce problème est apparu d'abord et je ne sais pas si cela a apporté quelques modifications à mon ordinateur...??
Tentative de correctifs
Il ya tout à fait une quelques discussions au sujet de ceci sur l'internet; certains threads fin à réussir là où les autorisations d'accès aux fichiers ont été modifiés, tandis que d'autres se finir sur un peu désespérée à consonance remarque... je suis passé par le processus de comparaison des autorisations NTFS sur toutes les consonances des répertoires sur mon PC avec que des collègues dont la machine c'est encore à travailler. Malheureusement, pas de joie.
J'ai aussi désinstallé asp.net 2.0 et ré-installé à l'aide de:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -ir
et encore une fois, pas de joie à être avait il soit.
Mon Web4 continue à fonctionner intact.
Aussi pour info: à l'aide de IIS 7.5 sur Win7 x64.
Je suis maintenant, pour ce public plus large dans l'espoir de faire de mon état de désespoir dans l'un des succès.
Merci à tous
Griff
source d'informationauteur DrGriff
Vous devez vous connecter pour publier un commentaire.
Dans le Gestionnaire des services IIS, dans les paramètres avancés de l'Application de la Piscine, assurez-vous que "Modèle de Processus > de Charger le Profil Utilisateur" est défini sur "True".
J'ai eu exactement ce même problème. J'ai essayé de modifier les autorisations, la désactivation de l'anti-virus, de créer un nouveau pool d'application et de la réinstaller .NET. J'ai même créé un site avec juste un "par Défaut.aspx" la page et essaie de visualiser ce site. Même le site a l'erreur de compilation. Enfin, j'ai remarqué que mon application piscines (propre site de test et site principal) a la non-valeur par défaut "False" pour le Charger paramètre de Profil Utilisateur. J'ai mis que sur true et le problème a disparu.
La réponse a été trouvée à l'aide de ProcMon:
Temporaire asp.net les fichiers sont d'abord créés dans le dossier temp de l'utilisateur, puis déplacé dans ce dossier. Pour certains encore raison inconnue, la compilation pour mon site Web2 (.NET 2 pool d'applications) utilise désormais les mêmes dossiers que mon Web4 (.NET 4 pool d'applications).
J'ai utilisé ProcMon à identifier tous les résultats pour "accès refusé" et a donné au groupe IIS_IUSRS des autorisations d'écriture (et dans un cas, - C:\Users\ASP.NET V4.0 Intégré - modifier les autorisations).
Je n'ai aucune idée de pourquoi la compilation à l'aide de la "mauvaise" dossiers et je pense que je peut avoir plus de élevée les autorisations dans certains cas, mais pour l'instant ça fonctionne.
Dans le cas où les réponses ci-dessus n'a pas le corriger pour vous, vérifiez vos variables d'environnement (clic droit sur Ordinateur -> Propriétés -> Paramètres Système Avancés -> onglet Avancé -> Variables d'Environnement
Assurez-vous que les variables temp sont pointant vers un dossier avec toutes les autorisations nécessaires. (accès complet pour le Service Réseau, IIS_IUSRS)
Remarque: ne cochez pas juste les deux variables en haut, regardez à l'intérieur du menu déroulant sous Variables Système. Vous pouvez trouver les variables configurées.
Il peut ne pas être la cause, mais cette erreur est apparu pour moi, après avoir essayé d'exécuter VS 2010 Assistant de Performance avec l'Instrumentation de la méthode.
Une solution rapide à mon environnement de DEV: modification de l'Identité du Pool d'Applications de l'app pour LocalSystem.