Reciba mensajes de error al examinar o intentar depurar una aplicación ASP.NET después de instalar la actualización de seguridad 887219 (MS05-004)

Seleccione idioma Seleccione idioma
Id. de artículo: 894670 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

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

Síntomas

Después de instalar la actualización de seguridad MS05-004, y después examinar o intentar depurar una aplicación de Microsoft ASP.NET donde la dirección URL contiene una barra diagonal inversa final (\), puede recibir uno de los mensajes de error siguientes:
No se encuentra el recurso.
Descripción: HTTP 404. El recurso que está buscando (o uno de sus dependencias) se han quitado, haya cambiado de nombre o no está disponible temporalmente. Revise la siguiente dirección URL 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 pudo iniciar la depuración de servidor ATL o ASP.NET. Compruebe que el servidor ATL o ASP.NET 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 URL que se especifica para la aplicación Web afectada. Para ello, utilice uno de los métodos siguientes.

Método 1: Utilizar el Administrador de IIS

  1. Haga clic en Inicio , haga clic en Ejecutar , escriba cmd y, a continuación, 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. Haga clic con el botón secundario 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 que se especifica en el cuadro de texto ruta de acceso local .

    Si la aplicación afectada es 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 que se especifica en el cuadro de texto ruta de acceso local .
  6. Haga clic en Aplicar y, a continuación, haga clic en Aceptar .

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

  1. Utilice el tp de ejemplo de código siguiente para crear una secuencia de comandos .vbs:
    
    Option Explicit
    
    Dim objWebService, objWebSite
    Dim objSite, objArgs, strServer
    Dim WshNetwork
    
    Set objArgs = WScript.Arguments
    
    If objArgs.Length = 1 Then
    	strServer = objArgs(0)
    ElseIf  objArgs.Length = 0 Then
    	Set WshNetwork = CreateObject("WScript.Network")
    	strServer = WshNetwork.ComputerName
    Else
    	WScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"
    	WScript.Quit
    End If
    WScript.Echo "Connecting to " & strServer
    
    Set objWebService = GetObject("IIS://" & strServer & "/W3SVC")
    
    For Each objWebSite in objWebService
    	Set objSite = GetObject(objWebSite.AdsPath)
    	If objSite.Class = "IIsWebServer" Then
    		WScript.Echo objSite.AdsPath
    		EnumVDir objSite, 1
    	End If
    Next
    
    WScript.Echo "Done processing."
    
    Sub EnumVDir(objVDir, i)
    	Dim objSubVDir, objDir
    	Dim strNewPath
    	
    	For Each objSubVDir in objVDir
    		If objSubVDir.Class = "IIsWebVirtualDir" Then
    			Set objDir = GetObject(objSubVDir.AdsPath)
    			
    			If ((Right(objDir.Path, 1) = "\") and (Right(objDir.Path, 2) <> ":\")) Then
    				WScript.Echo Space(i*3) & objDir.AdsPath
    				WScript.Echo Space(i*3) & "Path = " & objDir.Path
    
    				strNewPath = Left(objDir.Path, Len(objDir.Path) - 1)
    				WScript.Echo Space(i*3) & "New Path = " & strNewPath
    					
    				objDir.Put "Path", strNewPath
    				objDir.SetInfo
    			End If
    			
    			EnumVDir objDir, i + 1
    		End If
    	Next
    End Sub
    
    
  2. Ejecutar la secuencia de comandos .vbs desde la línea de comandos. Para ello, siga estos pasos:
    1. Haga clic en Inicio , haga clic en Ejecutar , escriba cmd y, a continuación, haga clic en Aceptar .
    2. En el símbolo del sistema, escriba cscript [file_name .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 tanto de rutas de acceso físicas y de rutas de acceso virtuales solicitadas.

Referencias

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

Propiedades

Id. de artículo: 894670 - Última revisión: lunes, 03 de diciembre de 2007 - Versión: 2.7
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.1 Service Pack 1
Palabras clave: 
kbmt kbhttp404 kbdev kbasp kbtshoot kberrmsg kbprb KB894670 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 894670

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com