構成要素customErrors

7804 ワード

Asp.netプロファイルの配置方式は、実はMSDNの中で最もはっきりと書かれています.残念ながらMSDNの強さは今まで知られていませんでした.
アドレス:http://msdn.microsoft.com/zh-cn/library/dayb112d(v=vs.80).aspxを貼り付けてから、分析します.私は自分が最初から最後までこのシリーズを真剣に勉強することを望んでいます.あまり早くあきらめないように、自分が使ったプロファイルから学び、疎かで少ないものに触れることにしました.
一、customErrors元素
ツールバーの
説明
defaultRedirect
エラーが発生したときにブラウザを指向するデフォルトのURLを指定します.この属性が指定されていない場合は、一般的なエラーが表示されます.オプションのプロパティ.URLは絶対的(例えば www.contoso.com/ErrorPage.html)または相対的.相対URL(例: /ErrorPage.html)は、エラーが発生したページに対してではなく、その属性にURLを指定するWeb.configファイルです.文字(~)で始まるURL( ~/ErrorPage.html)は、指定されたURLがアプリケーションに対するルートパスであることを示す.
mode
カスタムエラーを有効または無効にするか、リモートクライアントにのみカスタムエラーを表示するかを指定します.必須属性.オプション値および説明:On カスタムエラーの有効化を指定します.指定されていない場合 defaultRedirectでは、一般的なエラーが表示されます.Off        カスタムエラーの無効化を指定します.これにより、標準の詳細なエラーが表示されます.RemoteOnlyは、リモートクライアントのみにカスタムエラーを表示し、ローカルホストにASP.NETエラーを表示することを指定します.これがデフォルトです.デフォルトは RemoteOnly.
2、位置
 customerErrors -> configuration-> system.web  //     <system.web>  <configuration>   

 
3、サブエレメント
要素
説明
error
指定したHTTPステータスコードのカスタムエラーページを指定します.オプションの要素.エラータグは複数回表示できます.サブタグが表示されるたびに、カスタムエラー条件が定義されます.
 4、構成例:
<configuration>

  <system.web>

    <customErrors defaultRedirect="defaultError.htm"  //     ,    defaultError.htm

                  mode="RemoteOnly">           //               

      <error statusCode="500"               //  500  ,   500Error.htm

             redirect="500Error.htm"/>

    </customErrors>

  </system.web>

</configuration>

5、セクションハンドラの構成
このコンフィギュレーションノードに対応するAsp.netのコンフィギュレーション・セクション・クラスは、次のとおりです.
 System.Web.Configuration.CustomErrorsSection

 
クラスの主な共通属性を見てみましょう.
ツールバーの
説明
DefaultRedirect
リダイレクトのデフォルトURLを取得または設定します.
ElementInformation 
インクルードの取得 ConfigurationElement オブジェクトのカスタマイズ不可能な情報と機能の ElementInformation オブジェクト.(から) ConfigurationElement 引き継ぐ.)
Errors
取得 CustomError オブジェクトの集合、すなわちその下の構成セクション.
LockAllAttributesExcept 
ロックされたプロパティのセットを取得します.(から) ConfigurationElement 引き継ぐ.)
LockAllElementsExcept 
ロックされた要素のセットを取得します.(から) ConfigurationElement 引き継ぐ.)
LockAttributes 
ロックされたプロパティのセットを取得します.(から) ConfigurationElement 引き継ぐ.)
LockElements 
ロックされた要素のセットを取得します.(から) ConfigurationElement 引き継ぐ.)
LockItem 
要素がロックされているかどうかを示す値を取得または設定します.(から) ConfigurationElement 引き継ぐ.)
Mode
エラー表示モードを取得または設定します.
SectionInformation 
1つを取得 SectionInformation オブジェクト(オブジェクト) ConfigurationSection オブジェクトのカスタマイズ不可能な情報と機能.(から) ConfigurationSection 引き継ぐ.)
次に、プログラムの例として、構成セクションをプログラムで読み込み、設定する方法を示します.
        public ActionResult Index()

        {

            //<customErrors defaultRedirect="defaultError.htm" mode="Off">

            //  <error statusCode="500" redirect="500.htm"/>

            //</customErrors>



            //CustomErrorsSection customErrorsSection = ConfigurationManager.GetSection("system.web/customErrors") as CustomErrorsSection;    //

            CustomErrorsSection CES = (CustomErrorsSection)WebConfigurationManager.OpenWebConfiguration("/").GetSection("system.web/customErrors");

            Response.Write(CES.DefaultRedirect);    //   defaultError.htm

            CustomErrorsMode mode = CES.Mode;

            Response.Write(mode);       //   Off



            CustomError CE = CES.Errors[0]; //         <error>  

            Response.Write(CE.StatusCode);  //   500

            Response.Write(CE.Redirect);    //   500.htm



            ElementInformation EleInfo = CES.ElementInformation;    //    

            Response.Write(EleInfo.LineNumber);     //   14    customErrors  Web.Config   



            System.Configuration.Configuration c = CES.CurrentConfiguration;   //  Configuration     

            Response.Write(CES.IsReadOnly());     //   False           

            Response.Write(CES.LockItem);         //   False         

            Response.Write(CES.RedirectMode);     //   ResponseRedirect                      ,         URL



            SectionInformation SI = CES.SectionInformation;

            Response.Write(SI.Name);     //   customErrors



            return View();

        }