セキュリティ更新プログラム 887219 (MS05-004) のインストール後、ASP.NET アプリケーションの参照またはデバッグを行うときにエラー メッセージが表示されることがある

文書翻訳 文書翻訳
文書番号: 894670 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

セキュリティ更新プログラム MS05-004 をインストールした後、一部の ASP.NET アプリケーションの参照またはデバッグを行うときにエラーが発生することがあります。この資料では、表示される可能性のあるいくつかのエラー メッセージについて説明します。この問題の解決方法も掲載しています。

現象

セキュリティ更新プログラム MS05-004 のインストール後、URL の末尾に円記号 (\) が含まれる Microsoft ASP.NET アプリケーションの参照またはデバッグを行うときに、以下のエラー メッセージのいずれかが表示されることがあります。
リソースが見つかりませんでした。
説明 : HTTP 404. 探しているリソース (または、その依存関係の 1 つ) が削除されたか、名前が変更されたか、また一時的に使用できません。以下の URL のスペルが正しいことを確認してください。

プロジェクトを実行しようとしているときにエラーが発生しました : Web サーバーでデバッグを開始できません。ASP.NET または ATL Server のデバッグを開始できませんでした。ASP.NET または ATL Server のどちらかが正しくサーバーにインストールされていることを確認してください。

原因

この問題は、Microsoft インターネット インフォメーション サービス (IIS) メタベースで指定されている URL の末尾に円記号が含まれる場合に発生します。

解決方法

この問題を解決するには、IIS メタベースで、問題の発生している Web アプリケーション用に指定されている URL の末尾の円記号を削除します。これを行うには、以下の方法のいずれかを使用します。

方法 1 : IIS マネージャを使用する

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
  2. %systemroot%\system32\inetsrv ディレクトリに移動します。
  3. コマンド プロンプトで inetmgr と入力して IIS マネージャを開きます。
  4. 変更する URL の Web サイトを右クリックし、[プロパティ] をクリックします。
  5. 問題の発生しているアプリケーションが Web サイトの下の仮想ディレクトリである場合、[ディレクトリ] タブをクリックし、[ローカル パス] ボックスに指定されているパスから末尾の円記号を削除します。

    問題の発生しているアプリケーションが Web サイトのルート ディレクトリである場合、[ホーム ディレクトリ] タブをクリックし、[ローカル パス] ボックスに指定されているパスから末尾の円記号を削除します。
  6. [適用] をクリックし、[OK] をクリックします。

方法 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 [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. 次の手順に従って、コマンド ラインからこの .vbs スクリプトを実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
    2. コマンド プロンプトで cscript [file_name.vbs] と入力します。

      : file_name には .vbs スクリプトの名前を入力します。
    3. exit と入力してコマンド プロンプトを閉じます。

詳細

このセキュリティ更新プログラムを適用すると、ASP.NET による検証が、物理パスと要求された仮想パスの両方に関して、より厳密に実行されます。

関連情報

セキュリティ更新プログラム MS05-004 の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
887219 [MS05-004] ASP.NET パス検証の脆弱性により、無断アクセスが行われる可能性がある

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 894670 (最終更新日 2005-03-16) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 894670 - 最終更新日: 2007年12月3日 - リビジョン: 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
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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