次の方法で共有


ASP.NET デバッグの概要

更新 : 2007 年 11 月

アプリケーション コードにはさまざまな種類のエラー、つまりバグが含まれている可能性があります。構文エラーのほとんどは、コンパイル中にキャッチされます。ただし、コードのデバッグが必要なエラーもあります。つまり、コードの実行中に、コードを検証し、実行パスとデータが指定どおりであることを確認する必要のあるエラーです。

このトピックでは、ASP.NET Web ページ内でエラーを効率的に検索するために、Windows Software Development Kit (SDK) のデバッガを使用する方法について説明します。

背景

アプリケーション コードにはさまざまな種類のエラー、つまりバグが含まれている可能性があります。大部分の構文エラーはコンパイル時に検出されます。ただし、その他の種類のエラーはコードをデバッグする必要があります。つまり、コードを実行しながら調べて、実行パスおよびデータが予定した結果になることを確認します。詳細については、「アプリケーションのデバッグとプロファイリング」を参照してください。

Windows Software Development Kit (SDK) には、アプリケーションを実行しながら検証できる、ビジュアル デバッガと呼ばれるツールが用意されています。このツールは、%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe にあります。このデバッガを使用すると、アプリケーションをステートメントごとにステップ実行してそれぞれの変数のデータを表示することにより、その動作を正確に調べることができます。ビジュアル デバッガを使用するには、これを開き、ASP.NET アプリケーションのページを実行するプロセスにアタッチします。Internet Information Services (IIS) Version 5.0 と 5.1、および IIS 5.0 アプリケーション モードで実行する IIS 6.0 では、デバッガをアタッチするプロセスは ASP.NET ワーカー プロセス (Aspnet_wp.exe) です。ワーカー プロセス分離モードで実行する IIS 6.0 では、アタッチするプロセスはスレッド プール プロセス (W3wp.exe) です。プロセスにデバッガをアタッチすると、そのプロセスの実行中に発生するすべての内容を表示できます。また、デバッガは、実行するそれぞれのコード行がわかるように、プロセス内で実行する命令を元のコードに対応付けます。

ビジュアル デバッガ

ビジュアル デバッガを使用するとコードを実行しながらそれを調べることができます。これには、アプリケーションのデバッグに役立つ次のような機能が用意されています。

  • **ブレークポイント   **ブレークポイントは、デバッガでアプリケーションを停止し、アプリケーションの現在のデータの状態を表示して、それ以降の各コード行をステップ実行できるようになる、コード内の場所です。詳細については、「デバッグの基礎 : ブレークポイント」を参照してください。

  • ステップ実行   ブレークポイントで停止した後、コードを行単位で実行できます (コードのステップ実行と呼ばれます)。ビジュアル デバッガには、再び停止するまでにループをステップ実行する回数を指定できる反復子など、コードをステップ実行する場合に役立つ多くの機能が用意されています。詳細については、「コードのステップ実行の概要」を参照してください。

  • データ表示   ビジュアル デバッガには、アプリケーションを実行しながらデータの表示および追跡ができる、さまざまなオプションが用意されています。このデバッガでは、中断モードでアプリケーションを停止してデータを変更し、その変更したデータでアプリケーションの実行を継続できます。詳細については、「デバッガでのデータ表示」を参照してください。

ms227556.alert_note(ja-jp,VS.90).gifメモ :

Visual Studio 2005 のエディット コンティニュ機能は、Web アプリケーションでは使用できません。

詳細については、「Web ページでのデバッガの使用」を参照してください。

デバッグ用の ASP.NET Web アプリケーションの設定

ASP.NET Web アプリケーションをデバッグできるようにするには、デバッグ ビルドにコンパイルされるようにアプリケーションを設定する必要があります。デバッグ ビルドには、デバッガがコードをステップ実行して変数の内容を表示できるようにするために必要な情報が含まれています。アプリケーションの Web.config ファイルの Compilation セクションにデバッグ ビルド用の Web アプリケーションを設定します。詳細については、「compilation 要素 (ASP.NET 設定スキーマ)」を参照してください。1 つのページのみをデバッグする場合は、代わりに、デバッグするページの @ Page ディレクティブに debug=true を追加します。詳細については、「方法 : .NET アプリケーションのデバッグを有効にする」を参照してください。

ms227556.alert_note(ja-jp,VS.90).gifメモ :

デバッグ ビルドにコンパイルされたアプリケーションは、リリース ビルドにコンパイルされたアプリケーションに比べてその実行速度が非常に低下します。アプリケーションを配置する前に、デバッグ モードがオフになっていることを確認してください。また、デバッグ モードでは、エラーが発生するとスタック内により多くの情報が公開されるため、セキュリティ上の問題が発生する可能性があります。

ローカル デバッグおよびリモート デバッグ

IIS などの Web サーバーをローカルで実行している場合、ブラウザにページを表示できるように、コンピュータ上でローカルにアプリケーションを実行してデバッグできます。

Web サーバーを実行できないか、またはアプリケーションをローカルで使用できないために、ページをローカルで実行できない場合は、別のサーバー上で実行しているアプリケーションをデバッグできます。リモートでデバッグするには、リモート サーバー上に Visual Studio リモート デバッグ コンポーネントをインストールする必要があります。詳細については、「方法 : リモート デバッグをセットアップする」を参照してください。

デバッグ用のアクセス許可

プロセスのデバッグには、それを実行する場合より高い特権が必要です。このため、デバッグ用にアプリケーションを設定することに加え、それをデバッグするためにプロセスにアタッチできる適切なアクセス許可も持っている必要があります。ユーザーは、そのユーザー独自のユーザー ローカル ID で実行するプロセスをデバッグするためのアクセス許可を持っていますが、他のユーザーのプロセスはデバッグできません。管理者はすべてのプロセスをデバッグできます。

リモート サーバー上でデバッグするには、デバッグするプロセスを実行するコンピュータ上の管理者特権が必要です。詳細については、「方法 : リモート サーバーで Web アプリケーションをデバッグする」を参照してください。

クライアント側スクリプトのデバッグ

ビジュアル デバッガでは、サーバー側アプリケーションのデバッグに加え、ECMAScript (JavaScript) または VBScript で記述されたクライアント スクリプトをデバッグできます。クライアント スクリプトのデバッグは、クライアント側スクリプトを使用する Web サーバー コントロールがある場合に特に役立ちます。

参照

処理手順

方法 : リモート サーバーで Web アプリケーションをデバッグする

方法 : .NET アプリケーションのデバッグを有効にする

方法 : Web アプリケーションと Web サービスをデバッグする

概念

デバッグの基礎 : ブレークポイント

参照

Visual Studio デバッガの新機能

その他の技術情報

ASP.NET アプリケーションおよび AJAX アプリケーションのデバッグ