日期:2014-05-20  浏览次数:20466 次

如何优化ASP.NET网站的性能?有哪些可行方法
用.NET写了一个电子商务网站,但是性能却不尽人意 ,问一下如何优化.NET网站的性能,例如:提高访问速度,加强安全性,防止SQL注入等等。。。。。大家有什么好的优化方法尽量提出来 像vancl http://www.vancl.com/,京东
http://www.360buy.com/ 等等都算是.NET版本B2C网站的典范,CSDN也相当不错,

------解决方案--------------------
ASP.NET 中常用的26个优化性能的方法

http://hi.baidu.com/shichaoyang251/blog/item/0de0e3df8473301562279817.html
------解决方案--------------------
本章主要讲述在ASP.NET中如何提高程序性能。提高程序性能的方法主要有程序编码优化、数据操作优化和配置优化3个方面。
本章主要讲述的知识点如下:
— 程序编码优化
— 数据操作优化
— 配置优化
21.1 程序编码优化
从编码方面提高程序性能的方法主要涉及集合操作、字符串连接、类型转换等。
21.2 数据操作优化
数据操作优化主要是数据访问优化,包括数据库连接对象使用优化、数据访问优化、优化SQL语句、使用缓存等。
21.3 配置优化
不只是从程序代码上能提高程序性能,调用某些设置也能提高程序性能。
------解决方案--------------------
简单举几个优化方法

1、网站的运营模式(电子商务网站?信息门户网站?企业门户网站?等等)根据不同的模式采用不同的部署方式,电子商务网站特别要考虑的是安全性。以及网站采用的架构,架构一般决定了网站能以多快的速度运行。
2、多服务器部署,服务器的功能尽量单一,将IO操作尽量分布在不同的服务器上。例如:你可以将你大部分的js和css内容部署到一个静态服务器上,以减少主服务器的I/O操作。
3、减少和服务器的交互,例如:你可以在release版本中将js脚本压缩成一个文件(css文件雷同)。
4、适当的优化内容,静态内容就是用静态内容服务器(该服务器可以有一个后台程序来维护静态页面)
5、动态内容需要找到性能瓶颈,有针对性的优化。
a.内存使用情况分析
b.CPU使用情况分析
c.高并发响应速度分析
d.数据库性能分析
e.等等
5、根据分析结果进行算法的优化。

个人的一点经验,仅供参考。

------解决方案--------------------
页面静态化 ,,缓存。。等

------解决方案--------------------
1.数据库的优化.数据的缓存
2.页面编码的优化,包括后台程序和前台HTML.
3.页面静态化
4.不要使用太多的小图标,尽量合在一个文件.
5.能使用.js和.css的就不要直接写在页面中
6.数据量不大,但展示效果所需HTML 很多的显示,在前台用js生成效果.
...............


------解决方案--------------------
会话状态的恰当选择
禁用不必要的状态视图
减少不必要的服务器控件
数据库访问性能优化 优化查询语句
字符串操作性能优化 运用StringBuilder类
缓存优化
搜索引擎

------解决方案--------------------
ASP.NET管道优化

位于请求管道中的很多ASP.NET默认的HttpModules用于拦截客户端所发出的每个请求。例如,SessionStateModule拦截每个请求,并解析对应的会话cookie,然后在HttpContext中加载适当的会话。实时证明,并不是所有的modules都是必要的。
例如,如果你不使用Membership和Profile provider提供程序,那么你就可以不需要FormsAuthentication module。如果你需要为你的用户使用Windows验证,那么你就可以不需要WindowsAuthentication。位于管道中的这些modules仅仅在每次请求到来时执行一些不必要的代码。
 
默认的modules都定义在了machine.config文件中(位于$WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG目录下)。
<httpModules>
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
<add name="WindowsAuthentication" 
type="System.Web.Security.WindowsAuthenticationModule" />
<add name="FormsAuthentication" 
type="System.Web.Security.FormsAuthenticationModule" />
<add name="PassportAuthentication" 
type="System.Web.Security.PassportAuthenticationModule" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
<add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" />
<add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, 
System.Web.Mobile, Version=1.0.5000.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpModules> 你可以通过在站点的web.config文件中添加<remove>节点到你的网站应用程序中来删除这些默认的modules。例如:
<httpModules>
<!-- Remove unnecessary Http Modules for faster pipeline -->
<remove name="Session" />
<remove name="WindowsAuthentication" />