Vous pouvez recevoir des messages d’erreur lorsque vous parcourez ou essayez de déboguer une application ASP.NET après avoir installé la mise à jour de sécurité 887219 (MS05-004)


Résumé


Après avoir installé la mise à jour de sécurité MS05-004, puis vous accédez ou que vous essayez de déboguer des applications ASP.NET, vous pouvez rencontrer des erreurs. Cet article décrit les messages d’erreur différents que vous pouvez recevoir. Il propose également des solutions pour ces problèmes.

Symptômes


Après avoir installé la mise à jour de sécurité MS05-004, puis vous accédez ou que vous essayez de déboguer une application Microsoft ASP.NET dont l’URL contient une barre oblique (\), un des messages d’erreur suivants peut s’afficher :
Impossible de trouver la ressource. Description : HTTP 404. La ressource recherchée (ou une de ses dépendances) a peut-être été supprimée, que son nom ait changé ou est temporairement indisponible. Vérifiez l’URL ci-après et assurez-vous qu’elle est correctement orthographiée.
Erreur lors de l’exécution du projet : Impossible de démarrer le débogage sur le serveur web. A pas pu démarrer ASP.NET ou ATL Server de débogage. Vérifiez que l’ASP.NET ou ATL server est actuellement installé sur le serveur.

Cause


Le problème se produit si l’URL spécifiée dans la métabase Microsoft Internet Information Services (IIS) contient une barre oblique.

Résolution


Pour résoudre ce problème, supprimez la barre oblique inverse à droite dans la métabase IIS pour l’URL spécifiée pour l’application Web concernée. Pour ce faire, utilisez une des méthodes suivantes.

Méthode 1 : Utiliser le Gestionnaire des services IIS

  1. Cliquez sur Démarrer, sur Exécuter, tapez cmd, puis cliquez sur OK.
  2. Recherchez le répertoire %systemroot%\system32\inetsrv.
  3. À l’invite de commandes, tapez inetmgr pour ouvrir le Gestionnaire des services IIS.
  4. Cliquez droit sur le site Web de l’URL que vous souhaitez modifier, puis cliquez sur Propriétés.
  5. Si l’application concernée est un répertoire virtuel sous le site Web, cliquez sur l’onglet répertoire , puis supprimez la barre oblique inverse à droite du chemin d’accès spécifié dans la zone de texte chemin d’accès Local . Si l’application concernée se trouve dans le répertoire racine du site Web, cliquez sur l’onglet Répertoire de base et puis supprimez la barre oblique inverse à droite du chemin d’accès spécifié dans la zone de texte chemin d’accès Local .
  6. Cliquez sur Appliquer, puis sur OK.

Méthode 2 : Utiliser un script .vbs

  1. Utilisez le tp exemple de code suivant créer un script .vbs :
    Option ExplicitDim objWebService, objWebSiteDim objSite, objArgs, strServerDim WshNetworkSet objArgs = WScript.ArgumentsIf objArgs.Length = 1 ThenstrServer = objArgs(0)ElseIf  objArgs.Length = 0 ThenSet WshNetwork = CreateObject("WScript.Network")strServer = WshNetwork.ComputerNameElseWScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"WScript.QuitEnd IfWScript.Echo "Connecting to " & strServerSet objWebService = GetObject("IIS://" & strServer & "/W3SVC")For Each objWebSite in objWebServiceSet objSite = GetObject(objWebSite.AdsPath)If objSite.Class = "IIsWebServer" ThenWScript.Echo objSite.AdsPathEnumVDir objSite, 1End IfNextWScript.Echo "Done processing."Sub EnumVDir(objVDir, i)Dim objSubVDir, objDirDim strNewPathFor Each objSubVDir in objVDirIf objSubVDir.Class = "IIsWebVirtualDir" ThenSet objDir = GetObject(objSubVDir.AdsPath)If ((Right(objDir.Path, 1) = "\") and (Right(objDir.Path, 2) <> ":\")) ThenWScript.Echo Space(i*3) & objDir.AdsPathWScript.Echo Space(i*3) & "Path = " & objDir.PathstrNewPath = Left(objDir.Path, Len(objDir.Path) - 1)WScript.Echo Space(i*3) & "New Path = " & strNewPathobjDir.Put "Path", strNewPathobjDir.SetInfoEnd IfEnumVDir objDir, i + 1End IfNextEnd Sub
  2. À partir de la ligne de commande, exécutez le script .vbs. Pour ce faire, procédez comme suit :
    1. Cliquez sur Démarrer, sur Exécuter, tapez cmd, puis cliquez sur OK.
    2. À l’invite de commandes, tapez cscript [.vbsnom_fichier]. Remarque : l’argument nom_fichier est un espace réservé pour le nom de votre script .vbs.
    3. Pour fermer l’invite de commandes, tapez exit.

Informations supplémentaires


Après avoir appliqué cette mise à jour de sécurité, ASP.NET vérifie plus strictes pour la validité à la fois des chemins d’accès physiques et des chemins d’accès virtuels requis.

Références


Pour plus d’informations sur la sécurité MS05-004, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
887219 MS05-004 : vulnérabilité de validation du chemin ASP.NET peut permettre l’accès non autorisé