- - PR -
Application_Errorでエラートラップ不審動作
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-05-25 16:56
質問事項:
こんにちは。Webアプリケーションの開発で上記の問題に直面しています。 【やろうとしている事】 アプリケーション上で発生する種々のエラーは、発生の可能性がある 箇所だけでトラップしていますが、それ以外のエラーは、当面Global.asax 内部のApplication_Erroでハンドリングしようとしています。 これにより、例えばDBサーバやアプリケーションサーバがダウンした 場合のエラートラップを一括して行おうとしています。 【問題点】 殆どの場合、Application_Errorは正しく動作するのですが、ときどき ASP.NETのエラー画面(トレースログが出るやつ)が表示されます。 即ち、Application_Errorをすり抜けているようなのです。 しかも、その処理には一切再現性がありません。(再テストすると ちゃんとカスタムエラー画面を表示する。ただし、数回やっていると また何処かでASP.NETのエラー画面が出てしまう) 【聞きたい事】 このような症例を経験された方、またその回避方法をご存知の方いらっ しゃいましたら、是非ご経験をお知らせください。 ASP.NETの障害ではないことを祈っています。 【付記事項】 因みにこのテストを行っているサーバは、以下のようになっています。 ◇同一のASP.NETアプリケーションを3つの異なる仮想ディレクトリ上に インストールしている。 ◇個々の仮想ディレクトリ上のアプリケーションに対して、複数の ユーザがアクセスしてテストを行う。 ◇3つの仮想ディレクトリ上の同一アプリケーションにおいて、 global.asaxのApplication_Errorを実装しているのは1つの仮想ディレ クトリのみであり、ここで集中してテストしている。 まさかこれが原因であるとは思いませんが・・・ 以上、どんな些細な事でも結構です。情報をお寄せくださいませ。 | ||||
|
投稿日時: 2004-05-25 18:12
これって、どのように実装していますか? wwwroot/ |−/App1 | |−global.asax | |−/App1のコピー |−/App1のコピー2 ディレクトリ構成は、こう?また、アプリケーションの構成は、どのようになっていますか? というのは、global.asaxは、アプリケーションドメインについて1つのはずで、3つのアプリケーションを1つのglobal.asaxで処理というのが、どうも理解できない。 | ||||
|
投稿日時: 2004-05-26 10:47
Jittaさん、こんにちは、さとくんパパ♪です。
お世話になっています。 仮想ディレクトリの構成は、ほぼJittaさんの書いてくれた 通りです。ただしApp1, App2, App3と、それぞれちがう アプリケーション名になっているのですが、コンテンツ (アプリを構成する.aspxや.aspx.cs等のソースは全く同じ という事です) wwwroot/ |−/App1 | |−global.asax | |−/App2 | |−global.asax | |−/App3 | |−global.asax 「3つのアプリケーションは個々にGlobal.asaxを持っており そのうち1つだけ(上の場合App1)に対してのみ、 Global.asaxのApplication_Errorでの総合エラーとラップを 実装し、他では何もやっていない」 という意味です。 分かりにくくて申し訳ございませんでした。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-05-26 12:20
む〜? 私の、ASP.NETに対する理解が正しければ、App1, App2, App3は別々のアプリケーションとして構成されており、それぞれがエラーをトラップすることが必要、、、なのですが。 つまり、App1ではApplication_Errorでトラップできる(そう書いているから)のですが、App2, App3ではトラップできない(書いていないから)、と。再現性の面で、不思議??? 本当にApp2で発生した例外で、App1.Application_Errorに制御が移っていますか? | ||||
|
投稿日時: 2004-05-26 18:28
Jittaさん、こんにちは、さとくんパパ♪です。
お世話になっています。 書き方が悪くて申し訳ありません。 App1, App2, App3は、全てソースは同じですがGlobal.asaxが異なっており App1のGlobal.asaxにのみ、Application_Errorにおいて、カスタムエラーペ ージに分岐するロジックを実装しているということです。 App2, App3のGlobal.asaxのApplication_Errorでは、何もしていません。 従って・・・ App1 ==> エラー発生時にカスタムエラーページを表示 App2, App3 ==> エラー発生時に標準エラーページ(スタックとレースの 出るやつ)を表示 となるはずなのですが、App1において、ときどき標準エラーページが 出てしまうことが問題となっております。 まったく不思議としか言いようがありません。 |
1