ASP.NET 4運行時的主要改進
效能
可擴充性
其它
效能相關的新特性
新的資源監控器選項
Session State的改進
應用程式的自動運行
Response.RedirectPermanent
資源監控
CPU和記憶體都是有限資源
傳統監測都是在進程級的
無法監測某個應用域
CLR 4引進了“ARM”
Application domain Resource Management
基於ARM的效能計數器
Managed Memory Used
% Managed Processor Time
Session State
跨進程使用的session state
變得更快
自動壓縮
在很大程度上減少網路流量
大小減少到1/3到2/3
通過指令控制session state開/關
僅在真正需要時才用
局部的session state
僅使用指定key的Session來減少網路流量
應用程式的自動運行
提高網站效能
使得個別網頁運行得更快
為第一次運行網站應用程式“隱藏”啟動成本
通過ASP.NET和IIS隱藏啟動
IIS7.5能夠“自啟動”背景工作處理序和應用程式
ASP.NET 4結合IIS7.5實現自啟動
我們可以透過在applicationHost.config中設定以下內容讓特定的Pool永遠在暖機狀態
<applicationPools>
<add name="MyApplicationPool" startMode="AlwaysRunning" />
</applicationPools>
應用程式的自動運行
IIS team建立了一個warm-up module
運行在IIS7.5的頂端提供auto-start特性
支援任何ASP.NET版本
http://www.iis.net/extensions/ApplicationWarmUp
Response.RedirectPermanent
Response.Redirect產生HTTP 302的狀態代碼,是臨時重新導向,會引發用戶端對web伺服器的2次請求
Response.RedirectPermanent產生HTTP 301的狀態代碼,是永久重新導向,下次訪問時瀏覽器或搜尋引擎直接存取重新導向後的地址
可擴充性的改進
Session State
Output Cache
HTML, URL, HTML attribute, HTTP headers可自訂編碼
Request Validation
Session State的擴充
仍可通過SessionStateStoreProviderBase實現自訂的Session儲存機制
官方將提供新的Session State Provider
Output Cache的擴充
通過OutputCacheProvider派生出一個新的class實現自訂的Output Cache Provider
官方將提供新的Output Cache Provider
Windows AppFabric Caching(分布式緩衝)
基於磁碟儲存的Output Cache Provider
擴充機制支援
絕對到期時間
檔案依賴
靜態替換和驗證等
自訂編碼的擴充
通過System.Web.Util.HttpEncoder派生出一個新的class實現自訂編碼
並在web.config中設定
<httpRuntime encoderType="Samples.MyCustomEncoder, Samples" />
當調用System.Web.HttpUtility或System.Web.HttpServerUtility的公開方法時自動調用我們自訂的編碼邏輯
Request Validation的擴充
通過System.Web.Util.RequestValidator派生出一個新的class實現自訂RequestValidation
並在web.config中設定
<httpRuntime requestValidationType="Samples.MyValidator, Samples" />
然後網站的Request均使用自訂的邏輯進行檢查
其它
Web.config的httpRuntime可以設定url長度,字元限制等規則
maxRequestPathLength
maxQueryStringLength
requestPathInvalidChars
通過RouteTable.Routes對URL重寫