首次啟動速度慢的問題記錄IIS性能優化


  

ASP.NET網站發布的時候需要預編譯.這樣不但能解決首次速度慢的問題,還能把cshtml的內容編譯.這樣別人就看不到我們VIEW的代碼了.那么打開VS.

6356998063756300008812799.jpg

發布的時候把"在發布期間預編譯"打鈎,點擊后面的設置取消選擇"允許更新預編譯站點".這樣編譯出來的網站view被編譯成.compiled文件.並且根目錄下多了一個PrecompiledApp.config文件.

部署到服務器上之后,問題依舊

那么繼續谷歌百度一下,看到另一個結局反感是優化IIS.這也是上面要介紹部署環境的原因.因為IIS7.5和IIS8有個很大的區別關於性能.如果部署在IIS8上的話,只需要簡單的設置即可.下面是設置方法:

IIS8設置
應用程序池-高級設置-啟動模式:AlwaysRunning 
應用程序池-高級設置-進程模型-閑置超時:1740 (分鍾) 
應用程序-高級設置-常規-預加載已啟用:True 

這樣就可以解決問題了.這樣設置了過后一天網站signaR就失效了,直接503錯誤。網站有些圖片也會503!

 

但是在IIS7.5上並沒有這些選項,需要安裝一個模塊:Application Initialization Module for IIS 7.5

下載安裝略過不提.主要記錄一下配置方法.

打開服務器上的ApplicationHost.config文件.這個文件在IIS的安裝目錄Config下.

添加如下內容(但是似乎不添加也行)

< globalModules >
   < add  name = "ApplicationInitializationModule"
        image = "%windir%\System32\inetsrv\warmup.dll"  />
</ globalModules >

然后設置網站應用程序和和對應的應用程序池

< system.applicationHost >
   < applicationPools >
     < add  name = "West Wind West Wind Web Connection"
           autoStart = "true"
           startMode = "AlwaysRunning"
           managedRuntimeVersion = "v4.0"
           managedPipelineMode = "Integrated" >
       < processModel  identityType = "LocalSystem"
                     setProfileEnvironment = "true"  />
     </ add >
   </ applicationPools >
 
   < sites >
     < site  name = "Default Web Site"  id = "1" >      
       < application  path = "/MPress.Workflow.WebQueueMessageManager"
                     applicationPool = "West Wind West Wind Web Connection"
                     preloadEnabled = "true" >
         < virtualDirectory  path = "/"
         physicalPath = "C:\Clients\…"  />
       </ application >       
     </ site >
   </ sites >
</ system.applicationHost >

關鍵在於應用程序池設置的autoStart="true" startMode="AlwaysRunning" 這兩個的意思是自動自動和啟動模式.

網站應用程序設置的preloadEnabled="true"

 

這樣設置完成之后網站已經基本可以保證秒開了,基本解決了第一次打開速度很慢的問題.當然還遺留了一個EF首次加載緩慢的問題,額這還不知道怎么解決.似乎是沒辦法解決的.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM