ASP.NET網站發佈的時候須要預編譯.這樣不但能解決首次速度慢的問題,還能把cshtml的內容編譯.這樣別人就看不到咱們VIEW的代碼了.那麼打開VS.html
發佈的時候把"在發佈期間預編譯"打鉤,點擊後面的設置取消選擇"容許更新預編譯站點".這樣編譯出來的網站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首次加載緩慢的問題,額這還不知道怎麼解決.彷佛是沒辦法解決的.