<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    網站開發

    asp.net
    隨筆 - 30, 文章 - 0, 評論 - 9, 引用 - 0
    數據加載中……

    ASP.NET應用中十大常見的潛在問題

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

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

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

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

    具體參考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.*中,在沒有用編碼設置的情形下,如果是持久保存,存活時間是50年,如果是非持久保存,存活時間是30分鐘。這個問題在ASP.NET 2.0中已經解決,默認存活時間會用web.config里的設置。在ASP.NET 1.*中,只能用編碼來解決,具體編碼參考原文中的例子。

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

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

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

    在只讀會話狀態的頁面里,設置

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

    6。在ASP.NET 2.0應用中,如果在web.config里設置

    <roleManager enabled="true" />

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

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

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

    8。過長的數據庫查詢或I/O操作會導致線程池的飽和,導致ASP.NET的性能下降。ASP.NET 2.0提供了異步網頁(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" /> 導致客戶端用戶的身份模擬,要慎用,避免用身份模擬(Impersonation)替代ACL授權。

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

    posted on 2006-11-07 14:08 風雨兼程 閱讀(180) 評論(0)  編輯  收藏 所屬分類: Asp.net

    主站蜘蛛池模板: 免费无码又爽又刺激网站直播| 国产亚洲人成在线影院| 一个人看的www免费视频在线观看| 少妇亚洲免费精品| 污污污视频在线免费观看| 亚洲 无码 在线 专区| 全部在线播放免费毛片| 亚洲国产激情一区二区三区| 免费福利在线观看| 亚洲女同成av人片在线观看| 国产福利在线观看永久免费| 亚洲色偷偷偷鲁综合| 免费黄网站在线看| 亚洲精品自拍视频| 女人被弄到高潮的免费视频| 亚洲AV综合永久无码精品天堂| 免费无遮挡无码永久在线观看视频 | 亚洲欧美国产国产一区二区三区| 成年女人毛片免费观看97| 亚洲欧美在线x视频| 大胆亚洲人体视频| a级日本高清免费看| 亚洲午夜精品在线| 国产精品酒店视频免费看| www免费黄色网| 777亚洲精品乱码久久久久久 | 午夜亚洲WWW湿好爽| 国产亚洲精午夜久久久久久 | 成人免费无码大片A毛片抽搐色欲| 亚洲AV无码一区二区乱子仑| 久久精品亚洲男人的天堂| 日韩在线不卡免费视频一区| 亚洲中文字幕久久精品无码VA| 国产免费无遮挡精品视频| 成av免费大片黄在线观看| 亚洲国产美女精品久久久久| 国产免费私拍一区二区三区| 91成人在线免费观看| 美女被羞羞网站免费下载| 亚洲精品白色在线发布| 凹凸精品视频分类国产品免费|