小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ASP.NET應(yīng)用中十大常見的潛在問題

 xnet 2006-08-16

Jeff Prosise在《MSDN雜志》2006年7月期上的文章歷數(shù)ASP.NET應(yīng)用中常見的,容易出錯,影響性能和擴縮性的潛在問題

Keep Sites Running Smoothly By Avoiding These 10 Common ASP.NET Pitfalls
http://msdn.microsoft.com/msdnmag/issues/06/07/WebAppFollies/

1。設(shè)置輸出緩存的用戶控件,如果用LoadControl動態(tài)裝載,LoadControl返回對象屬于PartialCachingControl類,其中的CachedControl也許并不存在,無法轉(zhuǎn)換成原用戶控件對象類

2。在 IIS 6.0 中,在設(shè)置kernel模式輸出緩存的情形下,OutputCacheModule模塊有時會保留緩存輸出的Set-Cookie header,導(dǎo)致會話串門(cross-session),即一個用戶能看到其他用戶的會話數(shù)據(jù)

具體參考KB文章
An ASP.NET page is stored in the HTTP.sys kernel cache in IIS 6.0 when the ASP.NET page generates an HTTP header that contains a Set-Cookie response
http://support.microsoft.com/kb/917072

或者禁止kernel模式輸出緩存
<httpRuntime enableKernelOutputCache="false" />

具體參考
http://support.microsoft.com/kb/820129

3。 Forms 認證Ticket的存活時間。在ASP.NET 1.*中,在沒有用編碼設(shè)置的情形下,如果是持久保存,存活時間是50年,如果是非持久保存,存活時間是30分鐘。這個問題在ASP.NET 2.0中已經(jīng)解決,默認存活時間會用web.config里的設(shè)置。在ASP.NET 1.*中,只能用編碼來解決,具體編碼參考原文中的例子。

4。 View State,如果濫用的話,是無聲的性能殺手,特別是DataGrids和GridViews等,應(yīng)該設(shè)置EnableViewState=false,或者考慮通過更改LoadPageStateFromPersistenceMedium/SavePageStateToPersistenceMedium把View State放在服務(wù)器端。

5。如果使用SQL Server做會話狀態(tài)服務(wù)器的話,默認情形下,每個請求會訪問狀態(tài)服務(wù)器2次,造成性能下降。解決方案是,在不用會話狀態(tài)的頁面里,設(shè)置

<%@ Page EnableSessionState="false" ... %>

在只讀會話狀態(tài)的頁面里,設(shè)置

<%@ Page EnableSessionState="ReadOnly" ... %>

6。在ASP.NET 2.0應(yīng)用中,如果在web.config里設(shè)置

<roleManager enabled="true" />

默認情形下,角色數(shù)據(jù)是不緩存的,如果角色管理器需要確認當(dāng)前用戶的角色的話,會訪問數(shù)據(jù)庫,導(dǎo)致性能下降,解決方案是設(shè)置把角色數(shù)據(jù)緩存在Cookie里(這個Cookie是加過密的)

<roleManager enabled="true" cacheRolesInCookie="true" />

7。Profile 特性持久化問題,在默認情形下,ASP.NET profile管理器使用XML持久機制持久化自定義Profile類,不保存這些類的私有成員,解決方案是把這些類標(biāo)為[Serializable]或?qū)崿F(xiàn)ISerializable ,這樣profile管理器會使用binary serializer

8。過長的數(shù)據(jù)庫查詢或I/O操作會導(dǎo)致線程池的飽和,導(dǎo)致ASP.NET的性能下降。ASP.NET 2.0提供了異步網(wǎng)頁(asynchronous page)機制來緩解這個問題。具體參考Jeff Prosise在《MSDN雜志》2005年10月期上的文章

Asynchronous Pages in ASP.NET 2.0
http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/

9。<identity impersonate="true" /> 導(dǎo)致客戶端用戶的身份模擬,要慎用,避免用身份模擬(Impersonation)替代ACL授權(quán)。

10。別太有信心,多用Profiler剖析你的應(yīng)用對數(shù)據(jù)庫的訪問情形。重視數(shù)據(jù)庫的設(shè)計,認識到DataSet和DataAdapter對web應(yīng)用也許并不合適,數(shù)據(jù)訪問層要恰當(dāng)設(shè)計,防止粗劣細分(poor factorization),避免在相對簡單的操作上浪費太多的CPU周期,導(dǎo)致性能下降

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多