- PR -

【ASP.NET】Application_Error時のSession変数利用

1
投稿者投稿内容
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-05-29 13:17
いつもお世話になっております。

アプリケーションエラー発生時に、Try 〜 Catch でキャッチせず、全て Global.aspx.vb の Application_Error 時に、

Server.GetLastError().InnerException

で取得し、エラー表示画面でエラー内容を表示させる仕組みを考えております。

Dim oErr As Exception = Server.GetLastError().InnerException
で取得し、Source や Message や StackTrace の内容(String)を、Application_Error 時に ReDirect した画面で表示させたいのですが、値を渡せなくて困っています。

sessionState の mode が「StateServer」なので、セッション変数を利用して Exception を渡すことは出来ません。
oErr.Message.ToString ならセッション変数で渡せるかな、と思ってやってみましたが、値は渡りませんでした(Nothing です)。

これって、何かの仕様なのでしょうか?
(mode が InProc なら確か渡ったと思いますが・・・)

セッション変数以外で良い値を渡し方ってありますか?
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-05-29 14:26
すいません。自己解決しました。

まだまだ、探しが甘いですね。反省・・・

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10653&forum=7
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2006-05-29 14:33
お世話になります。

Application_Error で Server.GetLastError().InnerException せずに、
Application_Error では Server.Transfer("Error.aspx") だけやって、
Error.aspx の中で Server.GetLastError().InnerException を取得して
表示するのはダメなんでしょうか。
_________________
なおこ(・∀・) @ わんくま同盟
主婦と.NETと犬の記録
主婦と.NETと犬のぶろぐ
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-05-29 15:03
引用:

なおこ(・∀・)さんの書き込み (2006-05-29 14:33) より:

Application_Error で Server.GetLastError().InnerException せずに、
Application_Error では Server.Transfer("Error.aspx") だけやって、
Error.aspx の中で Server.GetLastError().InnerException を取得して
表示するのはダメなんでしょうか。


なおこ(・∀・)さん、お返事ありがとうございます。

いえ、全然ダメじゃないです。
私は、ReDirect していたので、Error.aspx 内でもセッション変数渡しでも出来なかったんですね。

で、Server.Transfer に変更したので、なおこ(・∀・)さんの言われる方法に修正して対応しました。
<元々、セッション変数で渡すつもりは無かったので(^_^;)>

ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)