Появление сообщений об ошибках при просмотре или отладке приложений ASP.NET после установки обновления для системы безопасности 887219 (MS05-004)

Переводы статьи Переводы статьи
Код статьи: 894670 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

После установки обновления безопасности MS05-004 и попытки просмотра или отладки каких-либо приложений ASP.NET возникают ошибки. В этой статье рассматриваются возможные сообщения об ошибках, а также способы устранения этих проблем.

Проблема

После установки обновления для системы безопасности MS05-004 и попытки просмотра или отладки одного из приложений Microsoft ASP.NET с URL-адресом, содержащим замыкающую обратную косую черту (\), может выводится одно из приведенных ниже сообщений об ошибке.
Не удается найти ресурс.
Описание: HTTP 404. Возможно, искомый ресурс (или один из зависимых от него компонентов) удален, получил другое имя или временно недоступен. Просмотрите следующий URL-адрес и проверьте, что он введен правильно.

Ошибка при попытке запустить проект: Не удается запустить отладку на веб-сервере. Не удается запустить отладку ASP.NET или ATL Server. Проверьте правильность установки ASP.NET или ATL Server на сервере.

Причина

Эта проблема возникает, если URL-адрес, указанный в метабазе служб Microsoft IIS, содержит замыкающую обратную косую черту.

Решение

Чтобы устранить эту проблему, в URL-адресе для данного веб-приложения, указанном в метабазе служб IIS, удалите замыкающую обратную косую черту. Для этого воспользуйтесь одним из описанных ниже способов.

Способ 1. Использование диспетчера служб IIS

  1. Нажмите кнопку Пуск, выберите в меню пункт Выполнить, введите команду cmd и нажмите кнопку ОК.
  2. Откройте папку %systemroot%\system32\inetsrv.
  3. Чтобы открыть диспетчер служб IIS, в командной строке введите inetmgr.
  4. Щелкните правой кнопкой мыши веб-сайт, URL-адрес которого необходимо изменить, и выберите пункт Свойства.
  5. Если приложение находится в виртуальном каталоге веб-сайта, откройте вкладку Каталог, а затем удалите замыкающую обратную косую черту из пути, который указан в текстовом поле Локальный путь.

    Если приложение находится в корневом каталоге веб-сайта, откройте вкладку Корневой каталог, а затем удалите замыкающую обратную косую черту из пути, который указан в текстовом поле Локальный путь.
  6. Нажмите кнопку Применить, а затем — ОК.

Способ 2. Использование сценария .vbs

  1. Для создания сценария .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 [имя_сервера]"
    	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. Запустите сценарий .vbs из командной строки. Для этого выполните действия, указанные ниже.
    1. Нажмите кнопку Пуск, выберите в меню пункт Выполнить, введите команду cmd и нажмите кнопку ОК.
    2. В командной строке введите cscript [имя_файла.vbs].

      Примечание.Имя_файла — это заполнитель для имени сценария .vbs.
    3. Чтобы закрыть окно командной строки, введите exit.

Дополнительная информация

После установки этого обновления для системы безопасности ASP.NET выполняет более строгую проверку допустимости как физических, так и запрашиваемых виртуальных путей.

Ссылки

Дополнительные сведения об обновлении безопасности MS05-004 см. в следующей статье базы знаний Майкрософт:
887219 MS05-004: Уязвимость при проверке путей приложениями ASP.NET делает возможным несанкционированный доступ

Свойства

Код статьи: 894670 - Последний отзыв: 14 апреля 2009 г. - Revision: 2.7
Информация в данной статье относится к следующим продуктам.
  • 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
Ключевые слова: 
kbhttp404 kbdev kbasp kbtshoot kberrmsg kbprb KB894670

Отправить отзыв

 

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