Server.TransferしたあとはASP.NETのトレース出力がされない
ASP.NETトレースの機能、便利なんですがServer.Transferしたあとは出力されないことに気づきました。
どういうことかというと、
Web.config
<system.web>
<trace enabled="true"/>
...
</system.web>
最初にアクセスするページ
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}protected void Button1_OnClick(object sender, EventArgs e)
{
Trace.Write("Default.aspxからトレース");
Server.Transfer("Transferred.aspx");
}
}
最初にアクセスするページからTransferされるページ
public partial class Transferred : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Trace.Write("Transferred.aspxからトレース");
}
}
上のようなコードで実行して最初にアクセスするページからボタンを押すと「Default.aspxからトレース」という文字列はTrace.axdに出力されるんですが、「Transferred.aspxからトレース」の文字列は出力されないのです。
ロギングライブラリを使った開発では、ASP.NETトレースとファイルの両方にデバッグ用のログを出力するように設定して、基本はASP.NETトレースを見て(みやすいので)、Server.Transfer以降のログはファイルを見るようにするのがよさそうです。