2011-06-23 7 views
7

データベースがダウンしているときにASP.NETで顧客エラーページを表示しようとしています。 SQL Serverモードを使用してセッションデータを保持します。問題は、カスタムエラーページが呼び出されないことです。セッションステートプロバイダがダウンしているときにASP.NETでカスタムエラーページを表示する方法

セッションデータとデータベースが同じサーバー上にあるため、カスタムエラーページにリダイレクトされません。私はこの時点でWebアプリケーションがロードされていないと推測していますか?ユーザーには、セッション状態の接続に失敗した場合のスタックトレースが表示されます。

データベースへの接続を確認するために、最初のウェブサイトの負荷の前に何かが必要なようです。これを実装する方法に関するアイデア?

+2

あなたはあなたのweb.configに今持っているものを提供できますか? –

+0
+0

これはいくつかの光を放つ可能性がありますhttp://aspnetresources.com/articles/CustomErrorPages –

答えて

1

web.configにこれを追加しますか?

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
    <error statusCode="403" redirect="NoAccess.htm" /> 
    <error statusCode="404" redirect="FileNotFound.htm" /> 
</customErrors> 

それが失敗しているあなたのSqlSessionStateされている場合は、あなたがより多くの情報を読み取ることができGlobal.asax

Application_Errorイベントに対応するエラーを処理する必要があり、より多くの情報here

を読むことができますhere

+0

DBがダウンしているときにstatusCodeを知るにはどうすればよいですか? – GoldenUser

+0

また、Application_Errorイベントの内部にデバッグポイントを配置すると、デバッグポイントにヒットしませんか? – GoldenUser

+0

ステータスコードを指定しないと、デフォルトのリダイレクトにプッシュされます。 – FlyingStreudel

1

私は、メモリ不足のセッション状態プロバイダ(データベース)を使用しているため、エラーが発生していると考えています。 dデータベース接続に障害があると、実際にはアプリケーションではなくWeb構成にエラーが認識されます。私は私のセッション状態プロバイダのためにAppFabric Cacheを使用しているところに似た問題がありますが、AppFabric Cache ServiceがダウンするとConfiguration Errorページが表示されます。

このため、FlyingStreudelはアプリケーションでエラーではなく、設定を読み込むので、customErrorsソリューションを使用することはできません。

私はこれを解決する方法を考えましたが、何も見つかりませんでした。私はこの質問に対する応答が、それはさまざまなエラー設定オプションですでに私は混乱しました願っています...

更新:今しばらくの間、これを調査した後、私の問題は、SessionStateModule原因という事実から来ていることが表示されますAppFabricキャッシュのセッション状態プロバイダを使用してDataCacheに接続しようとすると、例外(おそらくタイムアウト)がどこかにスローされます。 これはHTTPモジュールのInitで発生するため、黄色の画面の周りには何もないと思われます。

元のポスターの問題が同じであれば、私は驚くことはありません - SessionStateModuleの初期化で発生したSQLサーバーへの接続。

+0

答えはカスタムHttpモジュール[http://msdn.microsoft。 com/ja-jp/library/ms227673.aspx] – jamiebarrow

+0

モジュールの実行順序が予期しないように見えるかもしれません[http://forums.asp.net/t/1101427.aspx/1?HttpModule+execute + order] – jamiebarrow

+0

"各イベントの場合、各モジュールのイベントハンドラは、コンフィグレーションセクションのモジュールがコンフィグレーションされている順に実行され、最後にGlobal.asaxイベントハンドラが実行されます。" [http://learn.iis.net /page.aspx/381/aspnet-20-breaking-changes-on-iis-70/] – jamiebarrow

関連する問題