asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

高性能ASP.NET站点构建之简单的优化措施


发布日期:2021年02月12日
 
高性能ASP.NET站点构建之简单的优化措施

我们都知道不同的部署方式对站点的性能是有影响的可能有些朋友已经知道了这点不管怎样我们这里还是详细系统的讲述一下这个问题熟悉的朋友权当回顾J

Release方式编译项目

如果我们的项目是用Project的方式建立的也就是说我们的站点包含在一个Solution解决方案中那么在发布之前编译项目的时候采用release方式这种方式会减少CPU的使用率因为采用debug的方式发布编译器会编译后的代码中加入很多的信息如调试信息等

操作步骤

在VS中选择 Build | Configuration Manager如下

Active Solution Configuration下拉框现在Release然后Close那么Solution就以Release方式编译(其实使得Solution编译为Release的方法很多例如在Solution上面右击属性然后去设置也是可以的)

)thiswidth=; border=>

现在虽然Solution是Release方式了但是如果我们去查看这个Solution下面的ASPNET站点程序的config文件发现还是deubg方式的那么我们在发布站点的时候需要手动的去修改为release

如果Solution是以debug方式编译即使nfig设置了release最后发布的站点的代码还是方式的

站点发布

发布的步骤如下

修改nfig配置如下

在站点上面右键选择Publish如下

image onmousewheel=javascript:return big(this) alt= src=http://imgeducitycn/img_///png onload=javascript:if(thiswidth>)thiswidth=; border=>

减少不必要的回传

我们都知道从服务端到客户端的回传每次都是需要花费一定的时间的而且加长了用户等待的时间所以有些回传则是可免则免

ServerTransfer Vs ResponseRedirect

如果我们需要在服务端把用户定向到另外的一个页面那么考虑一下尽量使用ServerTransfer而不是使用ResponseRedirect

因为当使用ResponseRedirect的时候服务端会向客户端的浏览器发送一个响应告诉浏览器去加载转向的那个页面然后浏览器再次发送请求到服务端去请求另外的那个页面

当我们使用ServerTransfer的时候服务端就立刻执行跳转这样做的一个不好的地方可能就是此时请求的是Aaspx其实服务端已经跳转到了Baspx页面但是浏览器上面的Url还是显示的Aaspx

当使用ServerTransfer需要注意确定每次访问A页面都需要跳转到B页面的时候就是用ServerTransfer例如拿博客园来举例当用户在没有登录的时候想对正在阅读的一篇文章评论那么此时页面就会跳转到Login的登陆页面登陆之后页面就跳转到之前看文章的那个页面然后写评论此时的这个跳转就不适合用ServerTransfer而采用ResponseRedirect如果不管用户在哪里只要用户登陆那么总是跳到一个固定的页面那么就可以使用ServerTransfer

还有就是ServerTransfer毕竟会消耗服务端的资源使用的时候要注意

通过上面可以看出调优本来就是一个折中的过程不是绝对的调优最后说到底就是时空转换—时间换空间空间换时间

声明站点的默认页面

当我们请求一个站点的时候//domain/folderIIS会自动进行一些重定向//domain/folder/同时httpsys也不会把没有声明默认页面的站点的默认首页加入到内核的缓存中(可能说的有点的绕)例如如果在程序中我们设置站点的默认页面时Defaultaspx但是我们在部署到IIS的时候没有配置Defaultaspx就是站点的默认页面那么这个页面的内容不会被httpsys缓存到内核中所以为了避免IIS重定向和允许httpsys缓存页面我们在IIS中要配置站点的默认页面(或者每次在浏览器中输入x但是我们不能控制用户的行为所以这招这几乎不可能)

永久跳转相关话题

如果我们站点的某个页面过期了或者不再用了那么我们就可以采用永久跳转当服务端向客户端发出响应的时候浏览器和代理都会去更新他们的缓存(如果之前的旧页面采用了缓存)而且搜索引擎也会采用新的页面

要让服务端向客户端发送响应如下的方式

代码

在ASPNET 及以后的版本

ResponseRedirectPermanent(NewPageaspx);

IIS配置

a) IIS 配置

在IIS中站点中选中你想跳转的文件或者目录

选中A redirection to a URL

然后输入你想跳转到的页面

然后选中The exact url entered aboveA permanent redirect for this resource

b) IIS

在Server 上面

打开开始>管理工具>服务器管理

image onmousewheel=javascript:return big(this) alt= src=http://imgeducitycn/img_///png onload=javascript:if(thiswidth>)thiswidth=; border=>

在IIS上面添加角色服务

image onmousewheel=javascript:return big(this) alt= src=http://imgeducitycn/img_///png onload=javascript:if(thiswidth>)thiswidth=; border=>

常见Http功能下面选中Http重定向

image onmousewheel=javascript:return big(this) alt= src=http://imgeducitycn/img_///png width= onload=javascript:if(thiswidth>)thiswidth=; border=>

然后安装

在Win 上面如下

image onmousewheel=javascript:return big(this) alt= src=http://imgeducitycn/img_///png width= onload=javascript:if(thiswidth>)thiswidth=; border=>

然后在我们的站点的nfig配置如下

    xml >

    <configuration>

    <locationpath=OldPageaspx>

    <systemwebServer>

    <httpRedirectenabled=truedestination=NewPageaspxhttpResponseStatus=Permanent/>

    </systemwebServer>

    </location>

    </configuration>

今天就到这里多谢各位!

上一篇:解决 ASP.NET TreeView 断线问题

下一篇:在asp.net AJAX客户端使用复杂数据类型