Numéro d'article: 317955 - Dernière mise à jour: lundi 30 janvier 2006 - Version: 4.6

CORRECTIF : Message d'erreur « Impossible de démarrer le contrôle des modifications de répertoires » lorsque vous naviguez vers une page ASP.NET

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.

Sommaire

Agrandir tout | Réduire tout

Symptômes

Lorsque vous naviguez vers une page ASP.NET (.aspx), l'un des messages d'erreur suivants peut s'afficher :
Accès refusé au répertoire 'D:\MyWeb\Users\MainDirectory\MyApplication\. Impossible de démarrer le contrôle des modifications de répertoires.
- ou -
Accès refusé à 'D:\MyWeb\Users\MainDirectory\MyApplication\SamplePage.aspx'. Impossible de démarrer le contrôle des modifications de fichiers.
Pour plus d'informations sur les traces de pile d'appel qui sont associées à chacun de ces messages d'erreur, consultez la section « Plus d'informations ».

Cause

Pour détecter les modifications de fichiers, l'identité de processus et l'identité de l'utilisateur représenté doivent avoir des autorisations spécifiques à tous les répertoires dans la hiérarchie du chemin d'accès pour le fichier qu'ASP.NET surveille si l'un des répertoires de cette hiérarchie a plus de huit caractères dans son nom.

Quelques exemples des fichiers qu'ASP.NET surveille sont les suivants :
  • Fichiers Web.config
  • Fichiers Machine.config
  • Fichiers dans le répertoire Bin d'une application ASP.NET
  • Fichiers de dépendance de cache
Le premier message d'erreur s'affiche si l'identité de processus Aspnet_wp.exe (compte ASPNET par défaut) n'a pas d'autorisations sur au moins l'un des répertoires dans la hiérarchie du chemin d'accès de ce fichier.

Le deuxième message d'erreur s'affiche si le compte représenté n'a pas d'autorisations sur au moins l'un des répertoires dans la hiérarchie du chemin d'accès de ce fichier.

Résolution

Appliquez l'une des méthodes suivantes pour résoudre ce problème.

Méthode 1

Assurez-vous que tous les noms de répertoire dans la hiérarchie du chemin d'accès de ce fichier comportent moins de neuf caractères.

Par exemple :
C:\Web\Users\MainDir\Site1
Remarque Si vous renommez les répertoires afin que la longueur de chaque nom de répertoire soit maintenant inférieure à neuf caractères, après avoir apporté les modifications requises dans la configuration du site Web dans Microsoft Internet Information Services (IIS) pour prendre en compte le changement de nom des répertoires, vous devez redémarrer IIS.

Méthode 2

Accordez les autorisations requises sur tous les répertoires dans cette hiérarchie au compte de processus ASP.NET (ASPNET par défaut) ou au compte représenté (si l'emprunt d'identité est activé). Pour cela, procédez comme suit :
  1. Dans l'Explorateur Windows, naviguez jusqu'au dossier d'application ou au répertoire virtuel qui contient le contenu (par exemple, D:\MyWeb\Users\MainDirectory\MyApplication).
  2. Cliquez avec le bouton droit sur le dossier, puis cliquez sur Propriétés.
  3. Sous l'onglet Sécurité, cliquez sur Ajouter.
  4. Tapez Nom_Ordinateur\ASPNET (par exemple, sur un ordinateur nommé Webdev, tapez Webdev\ASPNET), puis cliquez sur OK. Si l'emprunt d'identité est activé, vous devez également ajouter les comptes représentés.
  5. Prévoyez les autorisations suivantes pour le compte ASPNET (et pour les comptes représentés si l'emprunt d'identité est activé) :
    • Lecture et exécution
    • Affichage du contenu du dossier
    • Lecture

  6. Cliquez sur OK pour fermer la boîte de dialogue Propriétés et pour enregistrer les modifications.
  7. Répétez les étapes 2 à 6 pour tous les dossiers dans la hiérarchie du chemin d'accès. Par exemple :

    • D:\MyWeb\Users\MainDirectory
    • D:\MyWeb\Users
    • D:\MyWeb
    • D:\

    Si vous souhaitez accorder des autorisations plus restrictives à ces dossiers, procédez comme suit après avoir effectué l'étape 5 :

    1. Cliquez sur Options avancées.
    2. Sous l'onglet Autorisations, cliquez sur l'entrée d'autorisation pour le compte ASPNET (ou un autre compte représenté), puis cliquez sur Modifier.
    3. Cliquez sur Effacer tout, puis activez la case à cocher Autoriser relative à l'autorisation Liste du dossier/lecture de données.
    REMARQUE : Le répertoire virtuel d'application (par exemple, D:\MyWeb\Users\MainDirectory\MyApplication) doit avoir au moins les autorisations qui sont spécifiées à l'étape 5.
  8. Redémarrez IIS.

Méthode 3

Si votre ordinateur exécute IIS 6.0, accordez les autorisations requises sur tous les dossiers dans cette hiérarchie au compte Service réseau. Pour cela, procédez comme suit :
  1. Dans l'Explorateur Windows, naviguez jusqu'au dossier d'application ou au répertoire virtuel qui contient le contenu (par exemple, D:\MyWeb\Users\MainDirectory\MyApplication).
  2. Cliquez avec le bouton droit sur le dossier, puis cliquez sur Propriétés.
  3. Sous l'onglet Sécurité, cliquez sur Ajouter.
  4. Tapez Nom_Ordinateur\SERVICE RÉSEAU (par exemple, sur un ordinateur nommé Webdev, tapez Webdev\SERVICE RÉSEAU), puis cliquez sur OK. Si l'emprunt d'identité est activé, vous devez également ajouter les comptes représentés.
  5. Prévoyez les autorisations suivantes pour le compte Service réseau (et pour les comptes représentés si l'emprunt d'identité est activé) :
    • Lecture et exécution
    • Affichage du contenu du dossier
    • Lecture

  6. Cliquez sur OK pour fermer la boîte de dialogue Propriétés et pour enregistrer les modifications.
  7. Répétez les étapes 2 à 6 pour tous les dossiers dans la hiérarchie du chemin d'accès. Par exemple :
    • D:\MyWeb\Users\MainDirectory
    • D:\MyWeb\Users
    • D:\MyWeb
    • D:\
    Si vous souhaitez accorder des autorisations plus restrictives à ces dossiers, procédez comme suit après avoir effectué l'étape 5 :
    1. Cliquez sur Options avancées.
    2. Sous l'onglet Autorisations, cliquez sur l'entrée d'autorisation pour le compte Service réseau (ou un autre compte représenté), puis cliquez sur Modifier.
    3. Cliquez sur Effacer tout, puis activez la case à cocher Autoriser relative à l'autorisation Liste du dossier/lecture de données.
    Remarque Le répertoire virtuel d'application (par exemple, D:\MyWeb\Users\MainDirectory\MyApplication) doit avoir au moins les autorisations qui sont spécifiées à l'étape 5.
  8. Redémarrez IIS.
Remarque Ces étapes sont uniquement valides pour les applications Web qui sont hébergées dans IIS 6.0.

Statut

Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés au début de cet article. Ce bogue a été corrigé dans ASP.NET (inclus avec le .NET Framework) 1.1.

Plus d'informations

Il s'agit de la trace de pile d'appel qui est associée au premier message d'erreur dans la section « Symptômes » :
[HttpException (0x80004005): Accès refusé au répertoire 'D:\MyWeb\Users\MainDirectory\MyApplication\'. Impossible de démarrer le contrôle des modifications de répertoires.]
   System.Web.FileChangesMonitor.StartMonitoringDirectoryRenamesAndBinDirectory(String dir, FileChangeEventHandler callback)
   System.Web.HttpRuntime.StartMonitoringDirectoryRenamesAndBinDirectory()
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context)

[HttpException (0x80004005): Erreur d'initialisation ASP.NET]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context)
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
					
Il s'agit de la trace de pile d'appel qui est associée au deuxième message d'erreur dans la section « Symptômes » :
[HttpException (0x80004005): Accès refusé à 'D:\MyWeb\Users\MainDirectory\MyApplication\SamplePage.aspx'. Impossible de démarrer le contrôle des modifications de fichiers.]
   System.Web.FileChangesMonitor.StartMonitoringFile(String fileName, FileChangeEventHandler callback)
   System.Web.Caching.CacheDependency.Init(String[] filenames, String[] cachekeys, CacheDependency dependency, DateTime start)
   System.Web.Caching.CacheDependency..ctor(String filename, DateTime start)
   System.Web.Caching.CacheDependency..ctor(String filename)
   System.Web.Security.FileAuthorizationModule.OnEnter(Object source, EventArgs eventArgs)
   System.Web.SyncEventExecutionStep.Execute()
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
					
Si vous recevez l'un des messages d'erreur répertoriés dans la section « Symptômes », mais que la trace de pile d'appel est différente, la cause du message d'erreur peut être différente. Dans ce cas, consultez les articles décrits dans la section « Références » pour plus d'informations.

Références

Pour plus d'informations sur le même message d'erreur dans un scénario différent, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
316721  (http://support.microsoft.com/kb/316721/ ) Message d'erreur « Impossible de démarrer le contrôle des modifications de répertoires » lorsque vous naviguez vers une page ASP.NET
Pour plus d'informations sur les autorisations requises par le compte ASPNET pour exécuter vos applications ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
317012  (http://support.microsoft.com/kb/317012/ ) Identité du processus et de la demande dans ASP.NET
Pour plus d'informations sur la sécurité ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
306590  (http://support.microsoft.com/kb/306590/ ) Présentation de la sécurité dans ASP.NET

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.0
Mots-clés : 
kbfix kbbug kbcaching kbpending kbsecurity KB317955
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.