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

不支援您的瀏覽器

您必須更新瀏覽器,才能使用此網站。

更新至最新版本的 Internet Explorer

安裝安全性更新 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
意見反應