技术开发 频道

ASP.NET性能提升之站点部署与内容传输

  【IT168 专稿】在将站点部署和到产品服务器之前,如果你正在使用ASP.NET 2.0 Membership Provider,你应该对你的web.config文件做一些调整:

  第一篇:ASP.NET性能提升秘诀之管道与进程优化
 
  在Profile Provider中添加applicationname特性。如果你不这里添加一个具体的名称,Profile provider将使用一个GUID。因此,你在的本地机器上,你将有一个GUID并且在产品服务器上你将有另一个GUID。如果你将本地数据库拷贝到产品服务器上,则在本地数据库中你将不能够重用这些记录并且ASP.NET将在产品服务器上创建一个新的应用程序。下面就是你需要添加的内容:

<profile enabled="true">
<providers>
<clear />
<add name="..." type="System.Web.Profile.SqlProfileProvider"
connectionStringName
="..." applicationName="YourApplicationName"
description
="..." />
</providers>

  无论一个页面得到请求什么时候完成,Profile provider都将自动保存Profile信息。因此,这可能会导致一些不必要的结果,就是更新了具有重大性能损失的数据库。因此,关掉这个自动保存功能并在代码中显式使用Profile.Save()方法。
<profile enabled="true" automaticSaveEnabled="false" >
  
  角色管理会一直查询数据库以便获得用户的角色。这样会有很大的性能损失。虽然你可以让角色管理器缓存这些角色信息到一个cookie中来避免。但是这会导致用户没有足够的权限去工作,因为cookie的最大存储量为2KB。因此,你可以安全地存储角色信息到一个cookie中并且在每次请求到*.aspx 和*.asmx.时保存到数据库中。

<roleManager enabled="true" cacheRolesInCookie="true" >

  上面三个设置都必须要求站点具有高容量。

  内容传输网络
 
  每个请求从浏览器到你的服务器都会通过覆盖世界各地的骨干网络。跨越很多国家、大陆、海洋的到达你服务器的请求会变得很慢。例如,如果你在美国有多服务器并且有人从澳大利亚浏览你的 站点,这样每个请求都会从地球的一端到另一端再到达你的服务器然后再返回到浏览器上。

  如果你的站点包涵有大量的静态文件诸如图片、CSS、JavaScript等;为它们单独发送请求并下载它们将会花费大量的时间。如果你能够在澳大利亚配置一台服务器并重定向用户到你的澳大利亚服务器,那么每个请求相对于发送到美国来说几乎影响很小。不仅是网络延迟将降低,而且数据传输速度将更快,从而静态内容下载也快得多。

  如果你的网站以静态内容为主的花,这将对用户来说有足够的性能提升。此外,针对国家范围的网络相比于互联网而言,ISPs提供了更快的速度,因为每个国家一般都有少数部分连接到了骨干网中,这些骨干网由同一国家的多个ISPs进行共享。结果,用户有4兆的带宽连接将从相同国家的服务器上获得整整4兆的速度。但是在国外它们从服务器上获得的速度又会降低到512KB。因此,在同一国家有一台服务器将大大提高站点的下载速度和响应速度。

  除了提高站点的加载速度以外,CDN也会从你的网站服务器上减少流量。因为它涉及静态缓存内容,你的网站服务器会很少访问到这些内容。因此,你的访问将大大减少网站服务器的点击并且网站服务器就可以腾出更多的资源来处理动态请求。你的网站服务器也节省了大量的IIS日志空间,因为IIS对于静态内容不需要进行日志请求。如果在你的网站上有很多图片、CSS、以及JavaScript,那么每天你就可以保存上GB的IIS日志。

0
相关文章