ASP.NET 4 运行时的新特性

性能相关的新特性
 新的资源监控器选项
 Session State的改进
 应用程序的自动运行
 Response.RedirectPermanent

 

(一)资源监控
 CPU和内存都是有限资源
 传统监测都是在进程级的 
– 无法监测某个应用域 

CLR 4引进了“ARM” 
– Application domain Resource Management 

基于ARM的性能计数器 
– Managed Memory Used 
– % Managed Processor Time 

 

增加对站点性能的监控 
 更改Aspnet.config 文件(C:/Windows/Microsoft.NET下对应framework中)
 <?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
     <runtime>
         <legacyUnhandledExceptionPolicy enabled="false" />
         <legacyImpersonationPolicy enabled="true"/>
         <alwaysFlowImpersonationPolicy enabled="false"/>
         <SymbolReadingPolicy enabled="1" />
         <shadowCopyVerifyByTimestamp enabled="true"/>
         <appDomainResourceMonitoring enabled="true"/>    增加这一行
     </runtime>
     <startup useLegacyV2RuntimeActivationPolicy="true" />
 </configuration>

就可以在性能监控中查看各个站点应用的性能使用情况 


(二)Session State  
跨进程使用的session state(可以使用SQL SERVER) 
– 变得更快 
 
自动压缩(减少流量,但是占用更多的CPU) 
– 在很大程度上减少网络流量 
– 大小减少到1/3到2/3 
 
通过指令控制session state开/关 
– 仅在真正需要时才用 
 
局部的session state 
– 仅使用指定key的Session来减少网络流量 
 
 
<sessionState mode="SQLServer" 
                  compressionEnabled="true" 
                  allowCustomSqlDatabase="true" 
                  cookieless="false" 
                  timeout="30" 
                  sqlConnectionString="Data Source=localhost;UID=sa;PWD=123;Initial Catalog=Session;"> 
    </sessionState>

 

(三)应用程序的自动运行
 提高网站性能
– 使得个别网页运行的更快
– 为第一次运行网站应用“隐藏”启动成本

 通过ASP.NET和IIS隐藏启动
– IIS 7.5能够“自启动”工作进程和应用程序
– ASP.NET 4 结合IIS 7.5实现自启动

 我们可以透过在applicationHost.config中设定
以下内容让特定的Pool永远在暖机状态
<applicationPools>
<add name="MyApplicationPool" startMode="AlwaysRunning" />
</applicationPools>

 

(四)

Response.RedirectPermanent
• Response.Redirect生成HTTP 302的状态码,是临时重定向,会引发客户端对web服务器的2次请求

   实际上发生两次请求

• Response.RedirectPermanent生成HTTP 301的状态码,是永久重定向,下次访问时浏览器或搜索引

  从第二次开始时一次请求
擎直接访问重定向后的地址。

 

(五)其他

 

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重写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值