web-dev-qa-db-fra.com

"Erreur: cs0016 n'a pas pu écrire dans le fichier de sortie ... l'accès est refusé"

Comment puis-je réparer l'erreur suivante?

erreur: cs0016 n'a pas pu écrire dans le fichier de sortie ... c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary Fichiers ASP.NET\sitename\6c57f9d2\bb09b49d\App_global.asax.5odzsyz5.dll ', l'accès est refusé

17

Je me débattais avec ce problème pendant un moment . Nous avons trouvé sur le Web des solutions qui impliquaient de définir des autorisations sur le répertoire "Fichiers temporaires ASP.NET" dans le message d'erreur. Mais même en l'ouvrant à "Tout le monde" n'a pas fonctionné.

Ensuite, les étapes suivantes ont finalement résolu le problème:

  1. Accédez à IIS AppPool pour ce site.
  2. Cliquez avec le bouton droit sur le pool d'applications et accédez à Paramètres avancés.
  3. Changer l'identité de "ApplicationPoolIdentity" en "NetworkService"

Il peut également y avoir certaines autres étapes nécessaires, comme je l’ai fait lors du dépannage, mais c’est l’étape clé. Pour une raison quelconque, l’identité du pool d’applications (telle que IIS_APPPOOL\SiteName) n’est pas autorisée lorsque "Tout le monde" l’est. Je suis sûr que quelqu'un d'autre peut expliquer pourquoi c'est le cas ... J'espère que cela aidera les autres à résoudre ce problème frustrant.

13
niltoid

Après avoir passé des heures sur ce problème, voici la solution qui fonctionne pour moi sous Windows 7 sous IIS 7.5:

L'identité du pool d'applications associée au site n'était pas membre du groupe IIS_IUSRS. Pour ajouter l'identité du pool d'applications au groupe, j'ai suivi les étapes suivantes:

  1. Dans le menu Démarrer, sélectionnez Exécuter… entrez lusrmgr.msc et cliquez sur OK.
  2. Sélectionnez des groupes.
  3. Double-cliquez sur le groupe IIS_IUSRS.
  4. Cliquez sur le bouton Ajouter ...
  5. Cliquez sur le bouton Emplacements ...
  6. Sélectionnez le nom de votre ordinateur (il devrait figurer en haut de la liste) et cliquez sur OK.
  7. Dans la zone de texte sous "Entrez les noms d'objet à sélectionner", entrez: Iis apppool\<identité du pool d'applications>, par exemple. iis apppool\dev
  8. Cliquez sur le bouton Vérifier les noms. Si une boîte de dialogue Nom non trouvé apparaît, vérifiez que l'identité du pool d'applications entrée correspond à l'identité du pool d'applications associée au site. Si une boîte de dialogue ne s'affiche pas, cliquez sur OK.

Répétez les étapes 7 à 8 pour chaque identité de pool d'applications à ajouter ..__ Cliquez sur OK.

À présent, l'identité du pool d'applications est membre du groupe IIS_IUSRS qui devrait déjà avoir accès au répertoire Temporary ASP.NET Files. Après tout, je recevais toujours l’erreur et j’ai trouvé (grâce à process monitor ) que c’est parce que l’identité du pool d’applications n’a pas pu écrire dans le répertoire temporaire Windows. Pour résoudre ce problème, j'ai ajouté le groupe IIS_IUSRS au répertoire temporaire Windows avec des autorisations de lecture/écriture.

  1. Dans le menu Démarrer, sélectionnez Exécuter… entrez% windir% et cliquez sur OK.
  2. Cliquez avec le bouton droit sur le répertoire Temp et sélectionnez Propriétés.
  3. Cliquez sur l'onglet Sécurité.
  4. Cliquez sur le bouton Modifier ....
  5. Cliquez sur le bouton Ajouter ..
  6. Cliquez sur le bouton Emplacements ...
  7. Sélectionnez le nom de votre ordinateur (il devrait figurer en haut de la liste) et cliquez sur OK.
  8. Dans la zone de texte sous "Entrez les noms des objets à sélectionner", entrez: iis_iusrs
  9. Cliquez sur le bouton Vérifier les noms. Si une boîte de dialogue Nom non trouvé apparaît, vérifiez les fautes de frappe. Si une boîte de dialogue ne s'affiche pas, cliquez sur OK.
  10. Sélectionnez le groupe IIS_IUSRS ajouté et, dans la zone Autorisations pour tout le monde ci-dessous, sélectionnez: Autoriser la lecture et autoriser l'écriture.
  11. Cliquez sur OK. Une boîte de dialogue s'affiche pour indiquer que "Vous êtes sur le point de modifier les paramètres d'autorisation Sur les dossiers système, ce qui peut entraîner des problèmes d'accès inattendus Et réduire la sécurité. Voulez-vous continuer?" 
  12. Cliquez sur Oui
  13. Cliquez sur OK
23
user2118400

J'ai résolu le problème en configurant le contrôle complet pour 'NETWORK SERVICE' sur la température du système:

C:\Windows\temp

Le message d'erreur signalé par le serveur Web est un peu trompeur . J'espère que cela vous aidera.

14
Jako

J'ai eu le même problème… .. trouvé un moyen facile de résoudre: Définissez «Charger le profil utilisateur» sur true dans les paramètres avancés du pool d'applications.

8
leshy84

Pour Windows 7 Définir Full Control Autorisations sur le dossier C:\Windows\Temp pour l'utilisateur IIS_IUSRS 

Network Service utilisateur ne s'applique généralement que sur les serveurs

2
Ted

J'ai trouvé que la réponse acceptée sur ce message était correcte dans le processus. J'ai essayé "NetworkService" et cela n'a pas fonctionné. Cependant "LocalSystem" l'a fait!

2
user2502767

J'ai toutes les autorisations pour écrire et lire mais je commence à avoir cette erreur.

Je peux suggérer "redémarrer la machine" Au moins, cela fonctionne pour moi

0
elfekz