次の方法で共有


エラー : Web サーバーでデバッグを開始できません

更新 : 2007 年 11 月

Web サーバーで実行しているアプリケーションのデバッグを試行すると、次のエラー メッセージが表示されることがあります。

Unable to start debugging on the Web server

これよりも長いメッセージが表示された場合、そのメッセージについて説明したサブトピックがあります。

このエラーが発生した場合は、いくつかの項目について検討する必要があります。まず、「チェックする項目」を確認してから、ハードウェアとソフトウェアの構成に基づいて残りの項目について検討します。

  • チェックする項目

  • リモート サーバーの Web アプリケーション

  • Visual SourceSafe に格納され、FrontPage Server Extensions を使用する Web アプリケーション

  • 手動でのアタッチ

  • 無効な構文のためにサーバーで生成できなかったデバッグ リクエスト

チェックする項目

次のチェックを試します。

  • ASP.NET または ATL Server を設定する手順を確認します。詳細については、「ASP.NET のデバッグの準備」を参照してください。

  • デバッグに必要なアクセス特権はありますか。詳細については、「ASP.NET のデバッグ : システム要件」の「セキュリティ要件」を参照してください。

  • Visual Studio デバッガが Web アプリケーションに自動的にアタッチできるような Windows のバージョンを実行しているかどうかを確認します。適切なバージョンの Windows を実行していない場合は、デバッグを指定しないでアプリケーションを起動し、そのアプリケーションに手動でアタッチする必要があります。詳細については、「手動でのアタッチ」および「ASP.NET のデバッグ : システム要件」を参照してください。

  • Web アプリケーションに Web.config ファイルがあるかどうかを確認します。

    • debug 属性を true に設定して、Web.config ファイルでデバッグ モードを有効にしているかどうかを確認します。詳細については、「方法 : .NET アプリケーションのデバッグを有効にする」を参照してください。

    • Web.config ファイルに構文エラーがないかどうかを確認します。デバッグを指定しないで Web アプリケーションを実行すると構文エラーをチェックできます。[デバッグ] メニューの [デバッグなしで開始] をクリックします。Web.config に構文エラーがある場合は、詳細情報が表示されます。

  • 特定の IP アドレス (100.20.300.400 など) を指定してプロジェクトを作成したかどうかを確認します。Web サーバーのデバッグには、NTLM 認証が必要です。既定では、IP アドレスはインターネットの一部と見なされ、インターネット上では NTLM 認証が行われません。この問題を解決するには、次の手順に従います。

    • プロジェクトの作成時に、イントラネット上のコンピュータ名を指定します。

      または

    • IP アドレス (http://100.20.300.400) をコンピュータの信頼済みサイトの一覧に追加します。Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックし、[セキュリティ] タブをクリックします。

    必要な拡張機能がサーバー コンピュータに登録されていますか。登録されていない場合、後述の手順で ASP.NET を再登録します。

  • ローカル コンピュータ (Visual Studio を実行するコンピュータ) で、Visual Studio をインストールした後に IIS をインストールしましたか。IIS は、Visual Studio の前にインストールする必要があります。後でインストールすると、ASP.NET の再登録が必要になることがあります。

    ASP.NET を再登録するには

    1. コマンド プロンプト ウィンドウで、「systemroot\Microsoft.NET\Framework\ versionNumber \aspnet_regiis -i」というコマンドを実行します。

      メモ   Windows Server 2003 の場合は、コントロール パネルの [アプリケーションの追加と削除] を使って ASP.NET をインストールできます。

    2. Visual Studio のディスクを挿入し、セットアップ プログラムを実行して、[修復/再インストール] をクリックします。この手順で wwwroot$ 共有が作成され、適切なアクセス特権が追加されます。

  • プロジェクト開始ページの URL が正しく指定されているかどうかを確認します。拡張子とプロジェクト ディレクトリについても確認してください。

  • Web アプリケーションの IIS 設定を確認します。詳細については、「方法 : IIS のプロパティ設定を確認する」を参照してください。

  • Web サーバーに 2 つのバージョンの .NET Framework がインストールされている場合、IIS 設定に正しいバージョンが設定されていることを確認します。詳細については、「方法 : IIS のプロパティ設定を確認する」を参照してください。

リモート サーバーの Web アプリケーション

Web アプリケーションがリモート サーバーにある場合、まず「チェックする項目」の項目をすべて確認します。次に、以下の点をチェックしてください。

  • IIS サーバーを実行しているコンピュータに、Visual Studio Remote Components がインストールされているかどうかを確認します。詳細については、「ASP.NET のデバッグの準備」を参照してください。

  • デバッグに必要なアクセス特権はありますか。詳細については、「ASP.NET のデバッグ : システム要件」の「セキュリティ要件」を参照してください。

  • ターミナル サーバーを使用してリモート コンピュータの Web アプリケーションのデバッグを試みていないかどうか確認します。ターミナル サーバーを使用したネイティブ Web アプリケーションのリモート デバッグは、Windows XP でサポートされています。Windows 2000 や Windows NT ではサポートされていません。

Visual SourceSafe に格納され、FrontPage Server Extensions を使用する Web アプリケーション

Web アプリケーションが Visual SourceSafe に格納されており、Web アクセス モードとして FrontPage Server Extensions を使用する場合は、以下についてチェックします。

  • Visual SourceSafe が FrontPage Server/Web サーバーと同じコンピュータにあるかどうかを確認します。同じコンピュータにある場合は、統合認証を使用してデバッグできます。統合認証の設定を確認するには、「方法 : IIS のプロパティ設定を確認する」の「Web アプリケーションの IIS 設定をチェックするには」を参照してください。

無効な構文のためにサーバーで生成できなかったデバッグ リクエスト

サーバーは、構文が不適切であるためにデバッグ リクエストを処理できないことがあります。machine.config ファイルの誤りによって、不適切なリクエスト構文になることがあります。machine.config ファイルで、maxRequestLength を途方もなく大きな値 (40,960,000 など) に設定すると、このエラーが発生します。

手動でのアタッチ

トラブルシューティングの手順に従っても、デバッグを行うとエラー メッセージが表示される場合は、手動でアタッチすることによってアプリケーションのデバッグを行います。

手動でアタッチするには

  1. デバッグを行わずにアプリケーションを起動します。[デバッグ] メニューの [デバッグなしで開始] をクリックします。

  2. 適切な IIS プロセスまたはワーカー プロセスの名前を決定します。ATL Server アプリケーションは、既定で inetinfo.exe という名前が付けられています。ASP.NET ワーカー プロセスの名前を決めるには、「方法 : ASP.NET プロセスの名前を見つける」を参照してください。

    次の手順のいずれかに従って、ASP.NET アプリケーションまたは ATL Server アプリケーションを実行するプロセスを確認します。

  3. 前の手順で決定したプロセスにアタッチします。詳細については、「方法 : 実行中のプロセスにアタッチする」を参照してください。

ASP.NET アプリケーションを実行するプロセスを確認するには

  1. Visual Studio または別のテキスト エディタで、アプリケーションの machine.config ファイルを開きます。

  2. system.web ノード内で、ProcessModel ノードを検索し、その enable 属性を確認します。

    enable が TRUE に設定されている場合、アプリケーションは aspnet_wp.exe または w3wp.exe で実行されます。これは、既定の設定です。

    enable が FALSE に設定されている場合、アプリケーションは inetinfo.exe で実行されます。

ATL Server アプリケーションを実行するプロセスを確認するには

  1. ソリューション エクスプローラでプロジェクト名を右クリックし、ショートカット メニューの [プロパティ] をクリックします。

  2. [<プロジェクト> プロパティ ページ] ダイアログ ボックスで、[Web 配置] フォルダを開き、[全般] をクリックします。

  3. [アプリケーション保護] の設定を参照します。

    設定が [低 (IIS プロセス)] の場合、アプリケーションは inetinfo.exe で実行されます。

    設定が [中 (プール)] の場合、プールされている他の ATL Server アプリケーションと同様に、アプリケーションは dllhost.exe プロセスで実行されます。

    設定が [高 (分離プロセス)] の場合、他の ATL Server アプリケーションとは異なり、アプリケーションは dllhost.exe プロセスで実行されます。

  4. [OK] をクリックして、[<プロジェクト> プロパティ ページ] ダイアログ ボックスを閉じます。

参照

処理手順

エラー : Web サーバーでは要求されたリソースを見つけられませんでした

参照

Web アプリケーションのデバッグ : エラーおよびトラブルシューティング

その他の技術情報

ASP.NET のデバッグの準備