2016-11-16 3 views
0

に複数のグローバルエラーファイルを使用する:私は溶液中で使用する3つのサブフォルダを使用してWebアプリケーションを持っている同じ溶液(Webアプリケーション)

  1. HR
  2. ビジネス
  3. マネー

それぞれには、マスターページ、CSSなどのソリューションの共通部分を使用するサブアプリケーションがあります。 各アプリケーションにはそれぞれのフォルダに独自のエラーページがあります。

ただし、トップフォルダには1つのGlobal.asaxしかありません。 各アプリケーションのグローバルレベルでエラーを処理したいので、ページをブラウズしているときに未知のエラーが常に各ソリューションの正しいエラーページに表示されるようにします。

例: 1. /HR/Page1.aspxのエラーが/HR/ErrorPageForHR.aspxに移動します。 2. /Business/Page1.aspxのエラーが/Business/ErrorPageForBusiness.aspxに移動します。 3. /Money/Page1.aspxのエラーが発生します。 /Money/ErrorPageForMoney.aspx

どうすればいいですか? 各フォルダまたは複数の方法で複数のGlobal.asaxを作成できますか?

答えて

0

実行可能なアプローチは、エラーハンドラのロジックをクラスに応じてClass Libraryに入力してエラーを適切に処理することです。このプロジェクトは、3つのWebアプリケーションで共有される共通の動作にも役立ちます。次に、そのライブラリを各Webアプリケーションへの参照として追加し、各Global.asaxファイル内のバックエンドに、Class Libraryプロジェクトメイン名前空間を含め、ErrorHandlerクラスロジックを呼び出します。これは私がやることです...

+0

をcustomeErrorsと各フォルダ内の別のweb.configファイルを置くことができます。クラスライブラリはエラーを記録し、正しいエラーページにリダイレクトすることもできます。 – ShanChat972

0

フォルダをプローブ過剰な過度の領域に変換しない限り、複数のGlobal.asaxを持つことはできません。

HttpContext.Current.Requestを使用してリクエストを取得し、URLに基​​づいて適切なエラーページにリダイレクトできます。

また、あなたはこれは私が同様に他のプロジェクトで使用することができます良いアプローチのように聞こえる、404のために403

+0

それはクールだ、私はHTTPリクエスト(HttpContext.Current.Request)を使用してエラーのサブアプリケーションを見つけることができますし、上記のクラスのアプローチを使用して再利用できるように:-) – ShanChat972

関連する問題