中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

將(jiang)不確(que)(que)定變為確(que)(que)實~請自己搞(gao)清楚異常頁面的設置(zhi)方法(網上那些資(zi)料說的基本都有問題!)

回到目錄

這篇(pian)文(wen)件需要搞清楚兩個概念:

1 怎么去設置(zhi)友好的(de)異(yi)常頁面(mian)

2 如何(he)去收集頁面產生的異常信息(xi)

我們(men)在(zai)網站(zhan)開發時,一(yi)般需要設置兩個異(yi)常頁面,如404頁面(資源未(wei)找到),500頁面(系統內部(bu)錯誤(wu),可(ke)能(neng)由某(mou)語句導致(zhi)的(de)某(mou)種異(yi)常),而如何去開啟這個異(yi)常功能(neng)網上說法(fa)不少,但感覺把問題(ti)搞復雜(za),以及自己不太確實的(de)答案很多,現在(zai)我就具體說一(yi)下:

首先,兩個問題是獨立的(de),第(di)一,友好(hao)的(de)導演頁面(mian)的(de)設置,第(di)二如何去收集(ji)產生異常的(de)信息

第一 友(you)好的導演頁面的設(she)置方法:

打(da)開web.config文件,添加如下(xia)代碼即可(ke),其它文件不(bu)需要(yao)設置

1 <customErrors mode="On" defaultRedirect="Error">
2       <error statusCode="404" redirect="Error" />
3       <error statusCode="500" redirect="~/Error/HttpError" />
4 </customErrors>

這里需要(yao)說(shuo)清(qing)楚的(de)是:mode="On",表(biao)示(shi)(shi)開(kai)(kai)啟下(xia)面的(de)錯(cuo)誤異常(chang)友好頁面;mode="Off",關(guan)閉下(xia)面的(de)異常(chang)友好頁面,即顯(xian)示(shi)(shi)出具(ju)體的(de)操作(zuo)異常(chang)(一(yi)般(ban)(ban)在網站開(kai)(kai)發階段用),mode="RemoteOnly",在服務器上開(kai)(kai)始錯(cuo)誤詳細信息,而(er)在客戶(hu)端關(guan)閉這個詳細信息(一(yi)般(ban)(ban)網站上線(xian)后選用)。

到目前(qian)為止,就第一個(ge)問題就OK了。

 

現(xian)在看第二個問題,如何(he)去收集產生異常的信息

我們以(yi)(yi)MVC3為例(li)來說(shuo)一下(xia),有兩(liang)種設置(zhi)方法,第一對(dui)于(yu)某(mou)個controller或action的(de)設置(zhi),可以(yi)(yi)在它上面加(jia)一個[HandlerErrorr]的(de)特性,第二是對(dui)全局的(de)所(suo)以(yi)(yi)controller的(de)設置(zhi),可以(yi)(yi)在global.ascx里(li)添加(jia)如下(xia)代(dai)碼(ma):

1        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
2         {
3             filters.Add(new HandleErrorAttribute());
4         }
5 
6        protected void Application_Start()
7         {
8               RegisterGlobalFilters(GlobalFilters.Filters);
9         }

值得慶幸的是MVC3本身的global.ascx已經集成了(le)這部分的代碼,而如果希望輸(shu)出(chu)或者記錄(lu)這些異(yi)常(chang)信(xin)息,也可以顯示(shi),現(xian)在我(wo)們(men)將異(yi)常(chang)信(xin)息輸(shu)出(chu)到頁面(mian)上,看一下吧。

 1 @model System.Web.Mvc.HandleErrorInfo
 2 @{
 3     ViewBag.Title = "錯誤";
 4 }
 5 <h2>
 6     一個一般性的錯誤發生了</h2>
 7 @if (Model != null)
 8 {
 9     <p>
10         錯誤 名稱:@Model.Exception.GetType().Name<br />
11         錯誤發生(sheng)目錄: @Model.ControllerName
12         <br />
13         錯誤發生文件:@Model.ActionName</p>
14     <p>
15         錯誤詳細:</p>
16     <p>@Model.Exception.Message</p>
17 }

怎么樣,夠(gou)簡(jian)單吧,聰明(ming)的你肯定想到了什么,對,如果您想記(ji)錄這些信(xin)息,直接再(zai)寫一(yi)個filter去(qu)到global.ascx里注冊一(yi)下就OK了,呵(he)呵(he)。

 


回到目錄
posted @ 2012-06-15 09:57  張占嶺  閱讀(1478)  評論(7)    收藏  舉報