您目前已離線,請等候您的網際網路重新連線

安裝安全性更新 887219 (MS05-004) 之後,當您瀏覽或偵錯 ASP.NET 應用程式時,可能會收到錯誤訊息

結論
安裝安全性更新 MS05-004 之後,當您瀏覽或嘗試偵錯某些 ASP.NET 應用程式時,可能會遇到錯誤。本文將告訴您可能會收到的不同錯誤訊息,並提供您修正那些問題的解決方案。
徵狀
安裝安全性更新 MS05-004 之後,當您瀏覽或偵錯 URL 含有結尾反斜線 (\) 的 Microsoft ASP.NET 應用程式時,可能會收到下列其中一個錯誤訊息。
找不到資源。
描述:HTTP 404. 您要尋找的資源 (或其相依性的其中之一) 可能已經移除、名稱已經變更或是暫時無法使用。請檢閱下列 URL,並且確定它的拼寫無誤。

嘗試執行專案時發生錯誤:無法在 Web 伺服器上啟動偵錯。無法啟動 ASP.NET 或 ATL Server 偵錯。請檢查 ASP.NET 或 ATL Server 目前是否已安裝在伺服器上。
發生的原因
如果在 Microsoft Internet Information Services (IIS) Metabase 中指定的 URL 含有結尾反斜線 (\),就會發生這個問題。
解決方案
如果要解決這個問題,請移除 IIS Metabase 中為受影響 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 路徑驗證弱點可能會允許未授權的存取
內容

文章識別碼:894670 - 最後檢閱時間:12/03/2007 18:42:23 - 修訂: 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
意見反應
"; var Ctrl = ""; document.write("