ASP.NET 開発メモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* ASP.NET 開発メモ [#dec2bd3b]
#contents
** ASP.NET で 例外を検出する方法 [#e43308f8]
Global.aspx に、エラー発生時のハンドラを記述すれば良い。
<%@ Import Namespace="System.IO" %>
<script Language="C#" runat="Server">
void Application_OnError(Object sender, EventArgs e)
{
// ここでログに書くなどする。
Exception err = Server.GetLastError().InnerException;
logger.Error( "エラーだよん。", err );
}
</script>
スクリプトではなく、コードに書く場合は、
<%@ Application Codebehind="Global.asax.cs" Inherits="Sa...
として、Global.asax.cs に
using System;
using System.Diagnostics;
namespace Sample
{
public class Global : System.Web.HttpApplication
{
public Global()
{
InitializeComponent();
}
protected void Application_Error(Object sender, EventA...
{
// ここでログに書くなどする。
Exception err = Server.GetLastError().GetBaseExceptio...
logger.Error( "エラーだよん。", err );
}
}
}
などと書く。
Global.asax は、ASP.NET のルートに置く。
※ちなみに、上の logger は [[log4net]] なんか使えるかと。
コードでは次のイベントも拾うことができる。
|BGCOLOR(#CCFFCC):イベントハンドラ|BGCOLOR(#CCFFCC):タイ...
|Application_Start|アプリケーションの初回起動時。|
|Application_End|アプリケーションが破棄された時。|
|Session_Start|ユーザーセッションの初回起動時。|
|Session_End|ユーザーセッションの終了時。|
|Application_BeginRequest|GETやPOSTなどのリクエスト発生時...
|Application_EndRequest|GETやPOSTなどのリクエスト終了時。|
|Application_Disposed|CLRがASP.NETアプリケーションを最終...
|Application_Error|アプリケーション内で処理されない例外が...
*** 参考 [#l8572906]
- [[[ASP.NET]アプリケーション内で発生したエラー情報をロ...
** HTTP サーバのイベントをログに残す方法 [#j1f9638b]
IHttpModule インタフェースを持つモジュールクラスを作れば...
using System;
using System.Web;
namespace Sample
{
public class HttpLoggerModule : IHttpModule
{
public HttpLoggerModule() : base()
{
}
public void Init(HttpApplication application)
{
// TODO: ここで取得したいイベントハンドラを追加...
application.BeginRequest += (new EventHandler(t...
application.EndRequest += (new EventHandler(thi...
}
public void Dispose()
{
// TODO: リソースの解放処理。
}
private void Application_BeginRequest(Object sende...
{
HttpContext context = ((HttpApplication)sender)...
logger.Debug( "-- BeginRequest" );
logger.Debug( String.Format( @"URL: ""{0}""", c...
}
private void Application_EndRequest(object sender,...
{
logger.Debug( "-- EndRequest" );
}
}
}
上のようなクラスをつくったら、.NET クラスライブラリとして...
HttpLoggerModule.dll というようなバイナリファイルができる...
これを使うアプリケーションのプロジェクトで、参照設定に追...
あとは、そのアプリケーションの web.config に、このモジュ...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpModules>
<add name="HttpLoggerModule" type="Sample.HttpLogg...
</httpModules>
</system.web>
</configuration>
*** 参考 [#xadf92f1]
- [[[ASP.NET]アプリケーション共通のロギングを行うには?...
-----
[[プログラム・開発系メモ]]
#googleads(1,1)
終了行:
* ASP.NET 開発メモ [#dec2bd3b]
#contents
** ASP.NET で 例外を検出する方法 [#e43308f8]
Global.aspx に、エラー発生時のハンドラを記述すれば良い。
<%@ Import Namespace="System.IO" %>
<script Language="C#" runat="Server">
void Application_OnError(Object sender, EventArgs e)
{
// ここでログに書くなどする。
Exception err = Server.GetLastError().InnerException;
logger.Error( "エラーだよん。", err );
}
</script>
スクリプトではなく、コードに書く場合は、
<%@ Application Codebehind="Global.asax.cs" Inherits="Sa...
として、Global.asax.cs に
using System;
using System.Diagnostics;
namespace Sample
{
public class Global : System.Web.HttpApplication
{
public Global()
{
InitializeComponent();
}
protected void Application_Error(Object sender, EventA...
{
// ここでログに書くなどする。
Exception err = Server.GetLastError().GetBaseExceptio...
logger.Error( "エラーだよん。", err );
}
}
}
などと書く。
Global.asax は、ASP.NET のルートに置く。
※ちなみに、上の logger は [[log4net]] なんか使えるかと。
コードでは次のイベントも拾うことができる。
|BGCOLOR(#CCFFCC):イベントハンドラ|BGCOLOR(#CCFFCC):タイ...
|Application_Start|アプリケーションの初回起動時。|
|Application_End|アプリケーションが破棄された時。|
|Session_Start|ユーザーセッションの初回起動時。|
|Session_End|ユーザーセッションの終了時。|
|Application_BeginRequest|GETやPOSTなどのリクエスト発生時...
|Application_EndRequest|GETやPOSTなどのリクエスト終了時。|
|Application_Disposed|CLRがASP.NETアプリケーションを最終...
|Application_Error|アプリケーション内で処理されない例外が...
*** 参考 [#l8572906]
- [[[ASP.NET]アプリケーション内で発生したエラー情報をロ...
** HTTP サーバのイベントをログに残す方法 [#j1f9638b]
IHttpModule インタフェースを持つモジュールクラスを作れば...
using System;
using System.Web;
namespace Sample
{
public class HttpLoggerModule : IHttpModule
{
public HttpLoggerModule() : base()
{
}
public void Init(HttpApplication application)
{
// TODO: ここで取得したいイベントハンドラを追加...
application.BeginRequest += (new EventHandler(t...
application.EndRequest += (new EventHandler(thi...
}
public void Dispose()
{
// TODO: リソースの解放処理。
}
private void Application_BeginRequest(Object sende...
{
HttpContext context = ((HttpApplication)sender)...
logger.Debug( "-- BeginRequest" );
logger.Debug( String.Format( @"URL: ""{0}""", c...
}
private void Application_EndRequest(object sender,...
{
logger.Debug( "-- EndRequest" );
}
}
}
上のようなクラスをつくったら、.NET クラスライブラリとして...
HttpLoggerModule.dll というようなバイナリファイルができる...
これを使うアプリケーションのプロジェクトで、参照設定に追...
あとは、そのアプリケーションの web.config に、このモジュ...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpModules>
<add name="HttpLoggerModule" type="Sample.HttpLogg...
</httpModules>
</system.web>
</configuration>
*** 参考 [#xadf92f1]
- [[[ASP.NET]アプリケーション共通のロギングを行うには?...
-----
[[プログラム・開発系メモ]]
#googleads(1,1)
ページ名: