ASP.NETページレベル Tracデバッグ、エラー処理
⚡ スマートサマリー
ASP.NETデバッグ、 tracVisual Studio のエラー処理とエラー処理は、開発者が問題を早期に発見し、リクエストを最後まで追跡するのに役立ちます。 trace.axd を使用し、開発および本番ライフサイクル中に未処理の例外が発生した場合に、ユーザーをカスタムエラーページにリダイレクトします。
どのようなアプリケーションでも、開発プロセス中にエラーは必ず発生します。 早い段階でエラーを発見できることが重要です。
Visual Studioでは、ASP.NETアプリケーションに対してこの操作を行うことができます。Visual Studioはデバッグに使用され、ASP.NET向けのエラー処理機能を備えています。
ASP.NET のデバッグとは何ですか?
デバッギング ブレークポイントとは、アプリケーションにブレークポイントを追加するプロセスです。これらのブレークポイントは、実行中のプログラムの実行を一時停止するために使用されます。これにより、開発者は特定の時点でプログラム内で何が起こっているかを把握することができます。
あるプログラムを例にとってみましょう。このプログラムはユーザーに「デバッグ中です」という文字列を表示します。仮に、アプリケーションを実行した際に、何らかの理由でこの文字列が表示されなかったとします。問題を特定するために、ブレークポイントを追加する必要があります。文字列を表示するコード行にブレークポイントを追加すれば、プログラムの実行が一時停止します。この時点で、プログラマーは何が問題なのかを把握できます。そして、それに応じてプログラムを修正します。
この例では、前の章で作成したデモアプリケーションを使用します。次の例では、次の内容を確認します。
- デモアプリケーションに文字列を表示させる方法。
- アプリケーションにブレークポイントを追加する方法。
- このブレークポイントを使用してアプリケーションをデバッグする方法。
ASP.NETでアプリケーションをデバッグする方法
以下は、ASP.NETでデモアプリケーションを作成し、ブレークポイントを追加してデバッグする手順です。
ステップ1)Visual Studioでアプリケーションを開きます。
まず、WebアプリケーションがVisual Studioで開いていることを確認しましょう。Visual StudioでDemoApplicationが開いていることを確認してください。
ステップ 2) Demo.aspx.cs ファイルを開き、以下のコード行を追加します。
- 文字列を表示するためのコード行 Response.Write を追加しているだけです。
- したがって、アプリケーションが実行されると、Web ブラウザに「We are debugging」という文字列が表示されるはずです。
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
ステップ3)アプリケーションにブレークポイントを追加します。
ブレークポイントは、Visual Studio 内でプログラムの実行を停止するポイントです。
- ブレークポイントを追加するには、ブレークポイントを挿入したい列をクリックします。この例では、プログラムを「Response.Write」というコード行で停止させたいとします。ブレークポイントを追加するためにコマンドを入力する必要はありません。ブレークポイントを追加したい行をクリックするだけで済みます。
- これが完了すると、コードが赤色でマークされることがわかります。 また、コード行の隣の列に赤いバブルが表示されます。
注意: アプリケーションには複数のブレークポイントを追加できます。
ステップ4)アプリケーションをデバッグモードで実行します。
ここで、デバッグ モードを使用してアプリケーションを実行する必要があります。Visual Studio で、メニュー オプションの [デバッグ] -> [デバッグの開始] を選択します。
出力:-
すべての手順を正しく実行すると、プログラムの実行が中断されます。Visual Studio はブレークポイントに移動し、コード行を黄色でマークします。
ここで、プログラマがコードが間違っていると感じた場合は、実行を停止できます。 コードはそれに応じて変更できます。 プログラムを続行するには、プログラマはキーボードの F5 ボタンをクリックする必要があります。
何ですか TracASP.NET で何をするのですか?
用途 tracる リクエストされたページでエラーが発生したかどうかを確認できます。 tracing が有効になっていると、追加ページが trace.axd がアプリケーションに追加されます(下図参照)。このページはアプリケーションに接続され、すべてのリクエストとそのステータスが表示されます。
有効にする方法 TracASP.NET アプリケーションの実装
有効化する方法を見ていきましょう tracのために ASP.NETアプリケーション:
ステップ1) それでは、デモアプリケーションの作成に取り掛かりましょう。ソリューションエクスプローラーからweb.configファイルを開いてください。
ステップ2) 以下のコードをweb.configファイルに追加してください。 traceステートメントは、 tracアプリケーションのための準備。
- requestLimit は traceステートメントは、処理しなければならないページリクエストの数を指定します。 tracエド。
- この例では、制限値を40に設定しています。制限値を設定するのは、これより高い値を設定するとアプリケーションのパフォーマンスが低下するためです。
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0" /> <trace enabled="true" pageOutput="false" requestLimit="40" localOnly="false" /> </system.web> </configuration>
Visual Studioでデモアプリケーションを実行します。
出力:-
今、 URL http://localhost:53003/trace.axd各リクエストに関する情報が表示されます。ここでは、アプリケーションでエラーが発生しているかどうかを確認できます。ページには、次の種類の情報が表示されます。
- Web ページのリクエストの時刻。
- リクエストされたウェブページの名前。
- ウェブ要求のステータスコード(ステータスコードが200の場合は、要求が成功したことを意味します)。
- 「詳細を表示」リンクをクリックすると、Webリクエストの詳細を確認できます。重要な情報の一つとして、ヘッダー情報が表示されます。これは、各Webリクエストのヘッダーで送信される情報を示しています。
ページレベル TracASP.NET での
ページレベル Tracる ASP.NET では、Web ページの処理中に、そのページに関する一般的な情報がすべて表示されます。これは、何らかの理由でページが正しく動作しない場合のデバッグに役立ちます。Visual Studio は、Web リクエストで呼び出される各メソッドの実行時間など、ページのさまざまな側面に関する詳細情報を提供します。
例えば、Webアプリケーションのパフォーマンスに問題がある場合、この情報は問題のデバッグに役立ちます。この情報は、アプリケーションをVisual Studioで実行したときに表示されます。
有効にする方法 TracASP.NET でページレベルでの ing
ページレベルの有効化方法を見ていきましょう。 tracASP.NETアプリケーションの場合:
ステップ1) それでは、デモアプリケーションの作成に取り掛かりましょう。ソリューションエクスプローラーからdemo.aspxファイルを開いてください。
ステップ2) ページを有効にするには、以下のコードを追加してください。 tracページ宣言では、属性を追加するだけです。 Trace=”true”。このコード行により、ページレベルの tracる。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" Trace="true" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> </form> </body> </html>
Visual Studio でアプリケーションを実行します。
出力:-
これで、Web ページ Demo.aspx が表示されると、ページに関するさまざまな情報が表示されます。このページには、ページ ライフサイクルの各側面の時間などの情報が表示されます。
エラー処理: カスタム エラー ページの表示
In ASP.NET、カスタム エラー ページをユーザーに対して表示することができます。アプリケーションに何らかのエラーが含まれている場合、カスタム ページにこのエラーがユーザーに対して表示されます。
この例では、まずHTMLページを追加します。このページには「問題を調査中です」という文字列が表示されます。次に、demo.aspxページにエラーコードを追加して、エラーページが表示されるようにします。以下の手順に従ってください。
ステップ1) それでは、デモアプリケーションの作成に取り掛かりましょう。アプリケーションにHTMLページを追加してみましょう。
- ソリューションエクスプローラーでDemoApplicationを右クリックします。
- メニューオプション「追加」→「HTMLページ」を選択してください。
ステップ2) 次のステップでは、新しい HTML ページに名前を付ける必要があります。
- 名前をErrorPageと指定してください。
- [OK] ボタンをクリックして続行します。
ステップ3) エラーページはVisual Studioで自動的に開きます。ソリューションエクスプローラーを開くと、ファイルが追加されていることが確認できます。
HTMLページに「問題の調査中です」というコード行を追加してください。web.configファイルを変更する前に、HTMLファイルを閉じる必要はありません。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> We are looking into the problem </body> </html>
ステップ4) 次に、web.config ファイルを変更する必要があります。この変更により、アプリケーションでエラーが発生した場合に、カスタムエラーページが表示されるようになります。customErrors タグを使用すると、カスタムエラーページを定義できます。defaultRedirect プロパティには、前の手順で作成したカスタムエラーページの名前を設定します。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
ステップ5) それでは、demo.aspx.cs ページに誤ったコードを追加してみましょう。ソリューションエクスプローラーでファイルをダブルクリックして、このページを開いてください。
以下のコードを Demo.aspx.cs ファイルに追加します。
- これらのコードは、ファイルからテキスト行を読み込むように設計されています。
- ファイルはDドライブにExample.txtという名前で保存されているはずです。
- しかし、私たちの状況では、このファイルは実際には存在しません。 したがって、このコードはアプリケーションの実行時にエラーになります。
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { String path = @"D:\Example.txt"; string[] lines; lines = File.ReadAllLines(path); } } }
ここでコードを実行します Visual Studioの 以下の出力が得られるはずです。
出力:-
上記のページは、アプリケーションでエラーが発生したことを示しています。その結果、ErrorPage.htmlページがユーザーに表示されます。
ASP.NETの未処理の例外
最善のシナリオであっても、予期せぬエラーが発生する可能性はあります。例えば、ユーザーがアプリケーション内で誤ったページにアクセスしてしまう場合などです。これは予測不可能な事態です。このような場合、ASP.NETはユーザーをErrorPage.htmlにリダイレクトすることができます。
その例を見てみましょう。
- エラーページ(ErrorPage.html)を含む、以前使用したデモアプリケーションをそのまま使用します。
- そして、アプリケーションに存在しない Web ページを表示しようとします。
- この場合は、ErrorPage.htmlページにリダイレクトされるべきです。その手順を見ていきましょう。
ステップ1) それでは、デモアプリケーションの作成に取り掛かりましょう。ソリューションエクスプローラーからGlobal.asax.csファイルを開いてください。
注意: Global.asax.csファイルは、アプリケーション内のすべてのページに適用されるコードを追加するために使用されます。
ステップ2) Global.asax.cs に以下のコードを追加してください。これらのコードはエラーをチェックし、エラーに応じて ErrorPage.html ページを表示するために使用されます。
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if (lastErrorWrapper.GetHttpCode() == 404) Server.Transfer("~/ErrorPage.html"); } } }
Code 説明:-
- 最初の行は、Application_Error イベントハンドラです。このイベントは、アプリケーションでエラーが発生するたびに呼び出されます。イベント名は Application_Error である必要があり、パラメータは上記のとおりである必要があります。
- 次に、クラス タイプ HttpException のオブジェクトを定義します。これは、エラーの詳細をすべて保持する標準オブジェクトです。次に、Server.GetLastError メソッドを使用して、アプリケーションで発生した最後のエラーの詳細をすべて取得します。
- 次に、最後のエラーのエラーコードが404かどうかを確認します(エラーコード404は、ユーザーがページにアクセスしようとした際に見つからない場合に返される標準コードです)。エラーコードが一致する場合は、ユーザーをErrorPage.htmlページに転送します。
それでは、Visual Studioでコードを実行してみてください。以下の出力が得られるはずです。
出力:-
ページを閲覧する http://localhost:53003/Demo1.aspx。 Demo1.aspx がアプリケーションに存在しないことに注意してください。 すると、以下の出力が得られます。
上記のページは、アプリケーションでエラーが発生したことを示しています。その結果、ErrorPage.htmlページがユーザーに表示されます。
ASP.NET エラーログ
アプリケーションエラーをログに記録することで、開発者は後日、エラーのデバッグと解決に役立てることができます。ASP.NETにはエラーをログに記録する機能があります。これは、エラーが捕捉された際にGlobal.asax.csファイルで行われます。捕捉処理中に、エラーメッセージがログファイルに書き込まれます。
その例を見てみましょう。
- エラーページ(ErrorPage.html)を含む、以前使用したデモアプリケーションをそのまま使用します。
- そして、アプリケーションに存在しない Web ページを表示しようとします。
- この場合、ErrorPage.html ページにリダイレクトされるはずです。
- 同時に、エラーメッセージをログファイルに書き込みます。その手順を見ていきましょう。
ステップ1) それでは、デモアプリケーションの作成に取り掛かりましょう。ソリューションエクスプローラーからGlobal.asax.csファイルを開いてください。
ステップ2) Global.asax.cs に以下のコードを追加してください。これによりエラーがチェックされ、エラーページ(ErrorPage.html)が表示されます。同時に、エラーの詳細が AllErrors.txt というファイルにログ記録されます。今回の例では、このファイルを D ドライブに作成するコードを記述します。
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str = ""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllText(path, str); Server.Transfer("~/ErrorPage.html"); } } }
Code 説明:-
- 最初の行では、Server.GetLastError メソッドを使用してエラー自体を取得します。取得したエラーは変数 exc に代入されます。
- 次に、str という名前の空の文字列変数を作成します。exc.Message プロパティを使用して、実際のエラーメッセージを取得します。exc.Message プロパティには、アプリケーションの実行中に発生したエラーの正確なメッセージが格納されています。取得したメッセージは、文字列変数に代入されます。
- 次に、AllErrors.txt というファイルを定義します。ここにすべてのエラーメッセージが送信されます。すべてのエラーメッセージを含む文字列 str をこのファイルに書き込みます。
- 最後に、ユーザーを ErrorPage.html ファイルに転送します。
出力:-
ページを閲覧する http://localhost:53003/Demo1.aspx。 Demo1.aspx がアプリケーションに存在しないことに注意してください。 すると、以下の出力が得られます。
同時に、AllErrors.txt ファイルを開くと、以下の情報が表示されます。
エラー メッセージは、デバッグの目的で後で開発者に渡すことができます。





























