你目前正处于脱机状态,正在等待 Internet 重新连接

安装安全更新 887219 (MS05-004) 后,浏览或调试 ASP.NET 应用程序时可能收到错误信息

概要
安装安全更新 MS05-004 后,您在浏览或尝试调试某些 ASP.NET 应用程序时可能遇到错误。本文描述您可能收到的不同错误信息,并为您提供修复这些问题的解决方案。
症状
安装安全更新 MS05-004 后,您在浏览或调试 Microsoft ASP.NET 应用程序,如果其中的 URL 包含斜杠 (\),可能收到下列错误信息之一。
The resource cannot be found.
Description:HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.Please review the following URL and make sure that it is spelled correctly.

Error while trying to run project:Unable to start debugging on the web server.Could not start ASP.NET or ATL Server Debugging.Verify that the ASP.NET or ATL server is currently installed on the server.
原因
如果 Microsoft Internet Information Services (IIS) 元数据库中指定的 URL 包含斜杠,就会出现此问题。
解决方案
要解决此问题,请删除 IIS 元数据库中为受影响的 Web 应用程序指定的 URL 中的斜杠。为此,请使用下列方法之一:

方法 1:使用 IIS 管理器

  1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
  2. 找到 %systemroot%\system32\inetsrv 目录。
  3. 在命令提示符处,键入 inetmgr 以打开 IIS 管理器。
  4. 右键单击该网站以获得要更改的 URL,然后单击“属性”。
  5. 如果受影响的应用程序在网站的虚拟目录下,请单击“目录”选项卡,然后从“本地路径”文本框中指定的路径中删除斜杠。

    如果受影响的应用程序在网站的根目录下,请单击“主目录”选项卡,然后从“本地路径”文本框中指定的路径中删除斜杠。
  6. 单击“应用”,然后单击“确定”。

方法 2:使用 .vbs 脚本

  1. 使用下面的内容创建 .vbs 脚本:
    Option ExplicitDim objWebService, objWebSiteDim objSite, objArgs, strServerDim WshNetworkSet objArgs = WScript.ArgumentsIf objArgs.Length = 1 Then	strServer = objArgs(0)ElseIf  objArgs.Length = 0 Then	Set WshNetwork = CreateObject("WScript.Network")	strServer = WshNetwork.ComputerNameElse	WScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"	WScript.QuitEnd IfWScript.Echo "Connecting to " & strServerSet 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 IfNextWScript.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	NextEnd Sub
  2. 从命令行运行该 .vbs 脚本。
    1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
    2. 在命令提示符处,键入 cscript [filename.vbs]

      注意filename 是您的 .vbs 脚本的名称的占位符。
    3. 要关闭命令提示符,请键入 exit
更多信息
应用此安全更新后,ASP.NET 对物理路径和请求的虚拟路径的有效性执行更严格的检查。
参考
有关 MS05-004 安全更新的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
887219MS05-004:ASP.NET 路径验证漏洞可能允许未经授权的访问
属性

文章 ID:894670 - 上次审阅时间:12/03/2007 18:42:41 - 修订版本: 2.6

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
反馈
m/ms.js"> html>