现在的位置: 首页 > 移动开发 > 正文

ASP.NET中性能和扩展性有哪些秘密

2020年06月01日 移动开发 ⁄ 共 1634字 ⁄ 字号 评论关闭

  ASP.NET有许多一旦你发现了就会大幅提高性能和扩展性的秘密.比如:在membership和Profileprovider中就有快速实现验证和授权的秘密。下面学步园小编来讲解下ASP.NET中性能和扩展性有哪些秘密?

  ASP.NET中性能和扩展性有哪些秘密

  浏览器的页面片断缓存机制(不是服务器缓存)可以在反复的访问中节约下载时间.在界面加载完成后给你的网站提供快速流畅的体验.最后,CDN和适当的使用http缓存头可以使你的网站访问飞快.这篇文章中,你可以学到一些提高你的ASP.NET网站性能的技巧.我们要讨论的问题:

  ◆管线最佳优化

  ◆ASP.NET过程最佳处理

  ◆进行之前要对ASP.NET做的事情

  ◆内容传送网络

  ◆在浏览器中缓存AJAX请求

  ◆优化缓存机制

  ◆优化页面装载速度提高用户体验

  ◆尽可能的优化ASP.NET2.0的profileprovider.

  ◆在不布置网站的情况下如何查询membership表

  ◆DOS攻击

  以上技巧可用于任何基于ASP.NET的网站,尤其是使用了membership和profileprovider的网站.

  1.管线最佳优化

  一些ASP.NET默认的HttpModules管理请求的管线并且每一个请求.例如:SessionStateModule拦截每一个请求,分析sessioncookie来加载HttpContext中的合适的session.但是并不是所有的Modules都是必需的,比如:如果你不用membership的话,就不用配置FormsAuthentication模块;如果你不用windows身份验证就不用配置WindowsAuthentication,这些模块只是包含在管线里面,为每一个请求执行一些并不是必须的代码.默认的模块定义在machine.config中($WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG)

  如下所示:

  

  

  

  

  

  

  

  

  httpModules>

  如果你想去掉这些默认的设置,只需要在你的web.config里加入节点.

  

  

  

  

  

  

  httpModules>

  上面的配置适用于基于数据库的form认证并且不需要任何session支持的网站.所以这些节点可以被删除.

  2.ASP.NET进程配置优化

  asp.net进程模型进行一些进程级别设置,比如ASP.NET使用多少线程,超时时间,多少请求等待输入输出工作的完成等等.默认情况下有很多限制.现在硬件越来越便宜,G级内存的服务器普遍存在,所以现在进程配置的优化可以得到更多的系统资源和扩展.

  一般情况下,ASP.NET的mashine.config的配置是这样的:

  

  

  system.web>

  你应该改变这样的配置,用一些值设置不同的属性来定制ASP.NET线程的工作方式.如下所示:

  

  除了下面的值外都是一些默认值:

  maxWorkerThreads:默认每个进程是20个线程.在双核的服务器上,系统会分配40个线程给ASP.NET,这就意味着ASP.NET在双核服务器上同时可以处理40个并发请求.为了给ASP.NET的每个进程增加线程,我曾经设置过100.如果你的应用的CPU强劲而且有更多的请求需要,你可以设置这个属性.特别是你的网络就用使用了大量的webservice或者上传/下载大量数据这些不会把压力转到CPU上的时候.当ASP.NET用完了所有的线程,它会停止接收更多的响应.请求会排成队列等待直到其它工作中的线程被释放.这种情况经常发生在网站接收到超出预期的点击的时候,这种情况下,如果你有备用的CPU,请增加进程的线程数量。

  以上就是关于“ASP.NET中性能和扩展性有哪些秘密”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.