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

  

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

6356998063756300008812799.jpg

發佈的時候把"在發佈期間預編譯"打鉤,點擊後面的設置取消選擇"容許更新預編譯站點".這樣編譯出來的網站view被編譯成.compiled文件.而且根目錄下多了一個PrecompiledApp.config文件.服務器

部署到服務器上以後,問題依舊app

那麼繼續谷歌百度一下,看到另外一個結局反感是優化IIS.這也是上面要介紹部署環境的緣由.由於IIS7.5和IIS8有個很大的區別關於性能.若是部署在IIS8上的話,只須要簡單的設置便可.下面是設置方法:ide

IIS8設置
應用程序池-高級設置-啓動模式:AlwaysRunning 
應用程序池-高級設置-進程模型-閒置超時:1740 (分鐘) 
應用程序-高級設置-常規-預加載已啓用:True 性能

這樣就能夠解決問題了.這樣設置了事後一天網站signaR就失效了,直接503錯誤。網站有些圖片也會503!優化

 

可是在IIS7.5上並無這些選項,須要安裝一個模塊:Application Initialization Module for IIS 7.5網站

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

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

添加以下內容(可是彷佛不添加也行)xml

< 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首次加載緩慢的問題,額這還不知道怎麼解決.彷佛是沒辦法解決的.

相關文章
相關標籤/搜索