Puede recibir mensajes de error cuando explora o intenta depurar una aplicación ASP.NET después de instalar la actualización de seguridad 887219 (MS05-004)


Resumen


Después de instalar la actualización de seguridad MS05-004, y, a continuación, examinar o intentar depurar algunas aplicaciones ASP.NET, puede experimentar errores. Este artículo describe los mensajes de errores diferentes que pueden aparecer. También proporciona soluciones para estos problemas.

Síntomas


Después de instalar la actualización de seguridad MS05-004, y, a continuación, examinar o intentar depurar una aplicación de Microsoft ASP.NET en la dirección URL contiene una barra diagonal inversa (\), puede recibir uno de los siguientes mensajes de error:
No se encuentra el recurso. Descripción: HTTP 404. El recurso que está buscando (o una de sus dependencias) puede haber quitado, haber cambiado de nombre o no está disponible temporalmente. Revise la dirección URL siguiente y asegúrese de que está escrita correctamente.
Error al intentar ejecutar el proyecto: no se puede iniciar la depuración en el servidor web. No se pudo iniciar ASP.NET o la depuración de servidor ATL. Compruebe que el servidor ASP.NET o ATL está instalado actualmente en el servidor.

Causa


El problema se produce si la dirección URL que se especifica en la metabase de Microsoft Internet Information Services (IIS) contiene una barra diagonal inversa.

Solución


Para resolver este problema, quite la barra diagonal inversa en la metabase de IIS para la dirección URL que se especifica para la aplicación Web afectada. Para ello, utilice uno de los métodos siguientes.

Método 1: Usar el Administrador de IIS

  1. Haga clic en Inicio y en Ejecutar, escriba cmd y, por último, haga clic en Aceptar.
  2. Busque el directorio %systemroot%\system32\inetsrv.
  3. En el símbolo del sistema, escriba inetmgr para abrir el Administrador de IIS.
  4. (Ratón) en el sitio Web para la dirección URL que desea cambiar y, a continuación, haga clic en Propiedades.
  5. Si la aplicación afectada es un directorio virtual en el sitio Web, haga clic en la ficha directorio y, a continuación, quitar la barra diagonal inversa al final de la ruta de acceso que se especifica en el cuadro de texto ruta de acceso Local . Si la aplicación afectada está en el directorio raíz del sitio Web, haga clic en la ficha Directorio principal y, a continuación, quitar la barra diagonal inversa al final de la ruta de acceso que se especifica en el cuadro de texto ruta de acceso Local .
  6. Haga clic en Aplicar y luego en Aceptar.

Método 2: Utilizar una secuencia de comandos .vbs

  1. Utilizar el tp de ejemplo de código siguiente para crear una secuencia de comandos .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. Ejecute la secuencia de comandos .vbs desde la línea de comandos. Para ello, siga estos pasos:
    1. Haga clic en Inicio y en Ejecutar, escriba cmd y, por último, haga clic en Aceptar.
    2. En el símbolo del sistema, escriba cscript [nombreDeArchivo.vbs]. Nota: file_name es un marcador de posición para el nombre de la secuencia de comandos .vbs.
    3. Para cerrar el símbolo del sistema, escriba exit.

Más información


Después de aplicar esta actualización de seguridad, ASP.NET realiza comprobaciones más estrictas para la validez de las rutas de acceso físicas y de rutas de acceso virtuales solicitados.

Referencias


Para obtener información adicional acerca de la seguridad de MS05-004 actualizar, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
887219 MS05-004: una vulnerabilidad de validación de rutas de ASP.NET podría permitir el acceso no autorizado