【IT168专稿】本文将接着上一篇 ASP.NET4与VS2010Web开发核心服务改进 继续讨论核心ASP.NET服务方面的改进。
四、永久重定向页面
一种常见的Web应用程序做法是,随着时间的推移经常移动网页和其他内容,从而导致搜索引擎失效链接的积累。在ASP.NET中,开发商通常采用的处理旧网址请求的方案是,使用 Response.Redirect方法把对旧网址的请求转发到新网址。然而,当用户尝试访问的旧网址时,使用Redirect方法会导致一个“HTTP 302 Found”(临时重定向)响应,从而相应地产生一次额外的HTTP往返。
ASP.NET 4增加了一个新的RedirectPermanent辅助方法,可以方便地发出“HTTP 301 Moved Permanently”响应,如下面的例子所示:
RedirectPermanent("/newpath/foroldcontent.aspx");
搜索引擎及其他识别永久重定向的用户代理程序都将会存储起与此内容相关的新的网址,从而消除不必要的因临时重定向导致的HTTP往返。
五、极具伸缩性的会话状态管理
ASP.NET针对在Web场中存储会话状态提供了两个默认选项:一个调用进程外会话状态服务器的会话状态提供程序,和一个能够把数据存储在Microsoft SQL Server数据库中的会话状态提供程序。由于这两个选项都牵涉到在Web应用程序的工作进程外存储状态信息,所以,在把会话状态发送到远程存储之前必须把它序列化。根据开发者在会话状态中保存信息的多少,序列化数据的尺寸可能增长到相当大。
ASP.NET 4引入了一个针对两种进程外会话状态提供程序的新的压缩选项。当显示在下面的示例中的compressionEnabled配置选项被设置为true时,ASP.NET将会使用.NET框架的System.IO.Compression.GZipStream类来压缩(和解压)序列化的会话状态。
mode="SqlServer"
sqlConnectionString="data source=dbserver;Initial Catalog=aspnetstate"
allowCustomSqlDatabase="true"
compressionEnabled="true"
/>
通过把此新的属性简单地添加到Web.config文件中,在Web服务器中具有空闲的CPU周期的应用程序便可以实现大幅度地减小序列化的会话状态数据的大小。