<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_LoveCherry</title><subtitle type="text">技术无极限</subtitle><id>http://feed.cnblogs.com/blog/u/10191/rss</id><updated>2011-04-25T06:18:03Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/10191/rss"/><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html</id><title type="text">一个MVC框架的原型</title><summary type="text">基于ASP.NET MVC2和VS2008 SP1，此框架提供以下功能：为Controller提供Unity的依赖注入为ActionFilter提供Unity的依赖注入为Action的方法的参数提供Unity的依赖注入动态以代码方式定义Action如果Action直接返回View可以省略Action使用代码方式为Controller注册ActionInvoker使用代码方式在Action/Controller/Global三个层次注册ActionFilter使用代码方式注册Unity组件使用配置文件方式注册Unity组件使用代码方式注册路由使用配置文件方式注册路由（add/remove/ign</summary><published>2010-12-11T08:27:00Z</published><updated>2010-12-11T08:27:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html"/><content type="html">&lt;p&gt;基于ASP.NET MVC2和VS2008 SP1，此框架提供以下功能：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;为Controller提供Unity的依赖注入&lt;/li&gt;&lt;li&gt;为ActionFilter提供Unity的依赖注入&lt;/li&gt;&lt;li&gt;为Action的方法的参数提供Unity的依赖注入&lt;/li&gt;&lt;li&gt;动态以代码方式定义Action&lt;/li&gt;&lt;li&gt;如果Action直接返回View可以省略Action&lt;/li&gt;&lt;li&gt;使用代码方式为Controller注册ActionInvoker&lt;/li&gt;&lt;li&gt;使用代码方式在Action/Controller/Global三个层次注册ActionFilter&lt;/li&gt;&lt;li&gt;使用代码方式注册Unity组件&lt;/li&gt;&lt;li&gt;使用配置文件方式注册Unity组件&lt;/li&gt;&lt;li&gt;使用代码方式注册路由&lt;/li&gt;&lt;li&gt;使用配置文件方式注册路由（add/remove/ignore），修改配置文件后路由规则直接生效，支持路由到mvc或webform&lt;/li&gt;&lt;li&gt;使用AutoMapper映射Model到ViewModel，提供ActionFilter支持自动映射&lt;/li&gt;&lt;li&gt;提供每个请求开始和结束执行的PerRequestTask&lt;/li&gt;&lt;li&gt;支持同时存在NVelocity和Webform两种视图引擎&lt;/li&gt;&lt;li&gt;NVelocity视图引擎支持各种HtmlHelper扩展方法，支持自定义的扩展方法，支持母板页，支持PartialAction和RenderPartial&lt;/li&gt;&lt;li&gt;演示各种RouteConstraints、ActionFilter、ActionResult、ValueProviderFactory、TempDataPrivider的自定义方式&lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;代码点击&lt;a href="http://files.cnblogs.com/lovecherry/MvcInfrastructure.rar"&gt;这里&lt;/a&gt;下载，只是一个原型，仅供参考原理&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lovecherry/aggbug/1903035.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html</id><title type="text">有关网站UI实现的几种方式的讨论</title><summary type="text">抛砖引玉，提出一些知道的做法，欢迎大家提出更多做法。  对于网站来说，UI最终的形式无非是（X）HTML + 脚本 + 样式，现在的问题是怎么样生成这些前端的元素，在以下几个方面达到平衡： （假设有开发和前端两种角色，前端负责表现逻辑和表现，而开发负责业务逻辑和业务数据） 1） 开发人员的工作量，工作难度 2） 前端开发人员（后面省略为前端）的工作量，工作难度 3） 产品（假设前端属于产品部）对U...</summary><published>2010-10-13T06:55:00Z</published><updated>2010-10-13T06:55:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html"/><content type="html">&lt;p&gt;抛砖引玉，提出一些知道的做法，欢迎大家提出更多做法。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;对于网站来说，UI最终的形式无非是（X）HTML + 脚本 + 样式，现在的问题是怎么样生成这些前端的元素，在以下几个方面达到平衡：&lt;/p&gt; &lt;p&gt;（假设有开发和前端两种角色，前端负责表现逻辑和表现，而开发负责业务逻辑和业务数据）&lt;/p&gt; &lt;p&gt;1） 开发人员的工作量，工作难度&lt;/p&gt; &lt;p&gt;2） 前端开发人员（后面省略为前端）的工作量，工作难度&lt;/p&gt; &lt;p&gt;3） 产品（假设前端属于产品部）对UI的改动需求能否快速落实（能否只依靠前端实现）&lt;/p&gt; &lt;p&gt;4） 服务端的压力（客户端的性能问题暂时不考虑）&lt;/p&gt; &lt;p&gt;（怎么发现自从翻译了《微软应用架构指南》之后，写什么都是翻译的口气了）&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第一种方式：XML + XSLT&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;数据源是XML，由开发人员提供，XSL可以一开始由开发人员写，以后由前端参与开发和维护。&lt;/p&gt; &lt;p&gt;T的过程可以在服务端进行，优点是搜索引擎友好，缺点是服务端压力大。&lt;/p&gt; &lt;p&gt;T的过程也可以在客户端进行，和服务端进行的优缺点互反。&lt;/p&gt; &lt;p&gt;这种方式比较适用访问量大（特别是客户端进行T）、交互简单的系统，比如论坛，因为服务端只需要提供数据源，而XSL则是静态资源可以在客户端缓存。&lt;/p&gt; &lt;p&gt;这种方式的优点是，如果前端直接维护XSL，那么在开发不介入的情况下可以直接对页面布局等进行调整，并且可以做到最好的性能。&lt;/p&gt; &lt;p&gt;而缺点则是，学习成本比较大，如果在客户端进行转换那么搜索引擎支持会不好，而且XSL相对比较难以维护，实现复杂逻辑成本比较大。&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;第二种方式：ASP.NET Webform&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;最常见的方式，基于控件，由控件生成HTML，开发也可以直接操作服务端控件。这是一种开发人员主导的方式。&lt;/p&gt; &lt;p&gt;这是一种普适的方式，什么应用都可以支持。缺点是不太利于实现UI快速改动，前端很难参与aspx的维护，因为很多UI都是由控件进行，开发人员很可能在后端操作控件进行一些UI的修改。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第三种方式：纯粹的javascript + 服务端数据源&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;所有和呈现相关的逻辑，都由javascript来写（可以依赖jquery,jtemplate等组件），以AJAX方式从服务端获取数据进行数据的填充和一些业务逻辑的实现。&lt;/p&gt; &lt;p&gt;这是一种前端主导的方式，会写大量的脚本来实现逻辑，需要的数据从服务端获取。&lt;/p&gt; &lt;p&gt;这种方式比较适合前端互动比较丰富的应用，比如网页游戏。&lt;/p&gt; &lt;p&gt;优点是，前端对页面的布局、行为有很大的自主权，并且服务端的压力也比较小。&lt;/p&gt; &lt;p&gt;缺点是，需要写大量的脚本代码，难度大并且容易出错，并且容易出现安全问题。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第四种方式：模板引擎&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;模板引擎通过基于HTML的模板加上各种预定义的占位符来实现数据的动态填充。在保证了UI灵活性的同时也保证了非常高的性能。&lt;/p&gt; &lt;p&gt;这种方式对于需要有多界面的新闻系统、博客系统，甚至每一个版块布局都不同的论坛系统来说很适用。&lt;/p&gt; &lt;p&gt;虽然足够灵活，但是前端和开发的配合还是双向的，也就是前端还是需要知道开发提供的数据结构。&lt;/p&gt; &lt;p&gt;并且，对于交互比较复杂的应用来说，可能需要用模板引擎预定义的脚本来写很多逻辑，造成难以维护。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第五种方式：ASP.NET MVC&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;这同样是一种普适的方式，只不过更适用于面向互联网的网站,而不是面向局域网的内部应用。&lt;/p&gt; &lt;p&gt;虽然MVC已经在UI和UI逻辑方面实现了很好的分离，但是我觉得还是很难在开发没有介入的情况下直接对页面的布局等进行调整。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第六种方式：在服务端为HTML的适当位置动态注入数据&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;这是一种比较新颖的方式，在服务端加载HTML作为模板文件，然后写代码修改HTML中的dom元素，为元素填充数据。&lt;/p&gt; &lt;p&gt;比如一个a.html配合a.shtml，a.shtml（httphandler）加载a.html然后解析HTML文档，从数据库加在数据填充到HTML中，输出这个HTML。&lt;/p&gt; &lt;p&gt;前端提供的HTML文件可以直接使用，不需要加任何模板标签，不需要加任何控件，所有数据由代码填充进去。&lt;/p&gt; &lt;p&gt;可以像jquery一样支持各种方式来搜索数据的填充路径，也可以把一段html作为模板，循环复制成一个列表页面。&lt;/p&gt; &lt;p&gt;优点是，前端维护HTML/脚本/样式，开发人员写代码生成数据，填充数据，彻底的分离。&lt;/p&gt; &lt;p&gt;缺点是，前端不能改变一些涉及到路径的元素（比如我们通过className来定位元素，前端改变了className就不行），还有性能可能会差一点。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第七种方式：在服务端为HTML动态载入数据，在客户端注入数据&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;还是以HTML作为模板文件，只不过这个数据组装的过程在客户端进行，相比第六种方式有更好的性能。&lt;/p&gt; &lt;p&gt;也就是服务端不用解析HTML文档，直接为HTML文档中加上一个JSON数据片段，这些数据是这个页面需要的所有数据。&lt;/p&gt; &lt;p&gt;然后，在服务端使用&lt;a href="http://projects.nikhilk.net/ScriptSharp" target="_blank"&gt;ScriptSharp&lt;/a&gt;等框架编译时生成填充数据到HTML的脚本，这个填充过程由客户端执行。&lt;/p&gt; &lt;p&gt;代码还是像第六种方式一样写，但是这段代码会完成两个工作，一个是把部分代码生成脚本文件，第二是把部分代码生成json数据写到页面上。&lt;/p&gt; &lt;p&gt;好像还没看到过有现成的框架是这么干的，难道这种方式不太实用？&lt;/p&gt; &lt;p&gt;其实演变一下的话，也可以是直接写脚本，不用ScriptSharp来生成，但是在服务端写的很大的一个好处是可以直接利用强类型的实体。&lt;/p&gt; &lt;p&gt;想象一下这样的伪代码：Document.FindElement("path").Fill(product.Take(10), product =&amp;gt; product.Name);&lt;/p&gt; &lt;p&gt;这样，product这个List的前10项就会以json输出在页面上，而定位元素以及赋值的代码也会以jquery/javascript代码输出在页面上。&lt;/p&gt; &lt;p&gt;优缺点和第六种方式一致。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第八种方式：由服务端生成HTML&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;这是一种比较极端的方式，所有HTML由代码生成，可以拼字符串也可以利用&lt;a href="http://sharpdom.codeplex.com/" target="_blank"&gt;SharpDom&lt;/a&gt;之类的框架。&lt;/p&gt; &lt;p&gt;适合UI随着业务逻辑变化非常大的流程系统，或者一些模板生成工具，不太适合业务系统。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;欢迎讨论：&lt;/p&gt; &lt;p&gt;1） 您的网站是怎么样的业务并且采用哪种方式？&lt;/p&gt; &lt;p&gt;2） 还有什么更好的方式方便前端和开发职责的分离？&lt;/p&gt; &lt;img src="http://www.cnblogs.com/lovecherry/aggbug/1850122.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html</id><title type="text">httpmodule和httphandler配合的又一应用——合并脚本样式</title><summary type="text">页面上数十个脚本和样式文件怎么去合并又少写人工干预？首先，使用查找替换把所有的&amp;lt;script&amp;gt;和&amp;lt;link&amp;gt;替换为&amp;lt;resource&amp;gt;然后在&amp;lt;resrouce&amp;gt;中加上runat="server"：母板页：&amp;lt;%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.maste...</summary><published>2010-04-01T02:03:00Z</published><updated>2010-04-01T02:03:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;页面上数十个脚本和样式文件怎么去合并又少写人工干预？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;首先，使用查找替换把所有的&amp;lt;script&amp;gt;和&amp;lt;link&amp;gt;替换为&amp;lt;resource&amp;gt;然后在&amp;lt;resrouce&amp;gt;中加上runat="server"：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;母板页：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="StaticResourceMerge.DemoWebApp.Site1" %&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "&lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&lt;/a&gt;"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="&lt;a href="http://www.w3.org/1999/xhtml" target="_blank"&gt;http://www.w3.org/1999/xhtml&lt;/a&gt;"&amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource src='http://images.xxx.com/js/script/apiCommon.js' type="text/javascript"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server"&amp;gt;&amp;lt;/resource&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource language="javascript" type="text/javascript" src="&lt;a href="http://images001.xxx.com/js/my/v3/1m/site_sms_messages.js" target="_blank"&gt;http://images001.xxx.com/js/my/v3/1m/site_sms_messages.js&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; charset="utf-8" runat="server"&amp;gt;&amp;lt;/resource&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource href='http://images.xxx.com/css/0709/ibuyandisell.css' type="text/css"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rel="stylesheet" runat="server" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ContentPlaceHolder ID="head" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/asp:ContentPlaceHolder&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 母板页&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/asp:ContentPlaceHolder&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;用户控件：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Inherits="StaticResourceMerge.DemoWebApp.WebUserControl1" %&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;resource language="JavaScript" type="text/javascript" src="&lt;a href="http://images.xxx.com//js/jquery.1.3.2.js" target="_blank"&gt;http://images.xxx.com//js/jquery.1.3.2.js&lt;/a&gt;" runat="server"&amp;gt;&amp;lt;/resource&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;resource language="JavaScript" type="text/javascript" src="&lt;a href="http://images.xxx.com//js/scroll.js" target="_blank"&gt;http://images.xxx.com//js/scroll.js&lt;/a&gt;" runat="server"&amp;gt;&amp;lt;/resource&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;用户控件&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;页面：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CodeBehind="WebForm1.aspx.cs" Inherits="StaticResourceMerge.DemoWebApp.WebForm1" %&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;%@ Register Src="WebUserControl1.ascx" TagName="WebUserControl1" TagPrefix="uc1" %&amp;gt;&lt;br /&gt;&amp;lt;asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource href='http://images.xxx.com/css/gamestytle.css' rel="stylesheet" type="text/css"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource rel="stylesheet" type="text/css" href="&lt;a href="http://images001.xxx.com/css/header/header_v32.css" target="_blank"&gt;http://images001.xxx.com/css/header/header_v32.css&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server" /&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;resource language="JavaScript" type="text/javascript" src="&lt;a href="http://images.xxx.com//js/jquery.1.3.2.js" target="_blank"&gt;http://images.xxx.com//js/jquery.1.3.2.js&lt;/a&gt;" runat="server"&amp;gt;&amp;lt;/resource&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&amp;lt;asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource language="javascript" type="text/javascript" src="&lt;a href="http://images.xxx.com/JS/JScript/FootV2.js" target="_blank"&gt;http://images.xxx.com/JS/JScript/FootV2.js&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server"&amp;gt;&amp;lt;/resource&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource rel="stylesheet" type="text/css" href="&lt;a href="http://images001.xxx.com/css/my/v3/1m/site_sms_messages.css" target="_blank"&gt;http://images001.xxx.com/css/my/v3/1m/site_sms_messages.css&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 页面&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;uc1:WebUserControl1 ID="WebUserControl11" runat="server" /&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;配置文件加上httomodule和handler：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;appSettings/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;connectionStrings/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置 compilation debug="true" 可将调试符号插入&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 已编译的页面中。但由于这会 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 影响性能，因此只在开发过程中将此值 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置为 true。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;compilation debug="true"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/compilation&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 通过 &amp;lt;authentication&amp;gt; 节可以配置 ASP.NET 用来 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 识别进入用户的&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 安全身份验证模式。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;authentication mode="Windows"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果在执行请求的过程中出现未处理的错误，&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 则通过 &amp;lt;customErrors&amp;gt; 节可以配置相应的处理步骤。具体说来，&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 开发人员通过该节可以配置&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 要显示的 html 错误页&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以代替错误堆栈跟踪。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;error statusCode="403" redirect="NoAccess.htm" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;error statusCode="404" redirect="FileNotFound.htm" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/customErrors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;httpModules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="StaticResourceMergeResourceCollectorModule" type="StaticResourceMerge.Core.ResourceCollectorModule, StaticResourceMerge.Core"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/httpModules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;httpHandlers&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add path="ResourceHandler.ashx" type="StaticResourceMerge.Core.ResourceHandler, StaticResourceMerge.Core" verb="GET,HEAD"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/httpHandlers&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在httpmodule中可以遍历找出页面上所有静态资源然后生成合并后的script和style&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;代码 &lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;using System.Web.Security;&lt;/p&gt;&#xD;
&lt;p&gt;namespace StaticResourceMerge.Core&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ResourceCollectorModule : IHttpModule&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private List&amp;lt;HtmlGenericControl&amp;gt; controls = new List&amp;lt;HtmlGenericControl&amp;gt;();&lt;/p&gt;&#xD;
&lt;p&gt;public void Dispose()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;public void Init(HttpApplication application)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application.PreRequestHandlerExecute += new EventHandler(application_PreRequestHandlerExecute);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;private void application_PreRequestHandlerExecute(object sender, EventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext httpContext = HttpContext.Current;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page page = httpContext.Handler as Page;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (page != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.PreRender += new EventHandler(page_PreRender);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;private void page_PreRender(object sender, EventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stopwatch sw = Stopwatch.StartNew();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page page = sender as Page;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (page != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FindResource(page);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (controls.Count &amp;lt;= 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/p&gt;&#xD;
&lt;p&gt;foreach (HtmlGenericControl c in controls)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.Parent != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.Parent.Controls.Remove(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;string pageTypeName = page.GetType().Name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MergedResourceCache.Data[pageTypeName] == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder stylePath = new StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder scriptPath = new StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;ResourceItem&amp;gt; rawStyleItems = new List&amp;lt;ResourceItem&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;ResourceItem&amp;gt; rawScriptItems = new List&amp;lt;ResourceItem&amp;gt;();&lt;/p&gt;&#xD;
&lt;p&gt;foreach (HtmlGenericControl c in controls)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!string.IsNullOrEmpty(c.Attributes["href"])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; rawStyleItems.Find(d =&amp;gt; d.Url == c.Attributes["href"].ToString()) == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var item = new ResourceItem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceItemType = ResourceItemType.Style,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Url = c.Attributes["href"].ToString()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stylePath.Append(item.Url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rawStyleItems.Add(item);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;if (!string.IsNullOrEmpty(c.Attributes["src"])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; rawScriptItems.Find(d =&amp;gt; d.Url == c.Attributes["src"].ToString()) == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var item = new ResourceItem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceItemType = ResourceItemType.Script,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Url = c.Attributes["src"].ToString()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptPath.Append(item);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rawScriptItems.Add(item);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;string styleKey = FormsAuthentication.HashPasswordForStoringInConfigFile(stylePath.ToString(), "md5");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string scriptKey = FormsAuthentication.HashPasswordForStoringInConfigFile(scriptPath.ToString(), "md5");&lt;/p&gt;&#xD;
&lt;p&gt;RawResourceCache.Data[styleKey] = rawStyleItems;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RawResourceCache.Data[scriptKey] = rawScriptItems;&lt;/p&gt;&#xD;
&lt;p&gt;ResourceItem mergedStyle = new ResourceItem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceItemType = ResourceItemType.Style,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Url = styleKey&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&#xD;
&lt;p&gt;ResourceItem mergedScript = new ResourceItem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceItemType = ResourceItemType.Script,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Url = scriptKey&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&#xD;
&lt;p&gt;MergedResourceCache.Data[pageTypeName] = new List&amp;lt;ResourceItem&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MergedResourceCache.Data[pageTypeName].Add(mergedStyle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MergedResourceCache.Data[pageTypeName].Add(mergedScript);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;if (page.Form != null &amp;amp;&amp;amp; MergedResourceCache.Data[pageTypeName] != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var item in MergedResourceCache.Data[pageTypeName])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (item.ResourceItemType == ResourceItemType.Style)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlGenericControl style = new HtmlGenericControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style.TagName = "link";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style.Attributes.Add("href", string.Format("{0}?url={1}", page.ResolveUrl(ConfigProvider.ResourceHandlerPath), item.Url));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style.Attributes.Add("rel", "stylesheet");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style.Attributes.Add("type", "text/css");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Form.Controls.AddAt(0, style);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (item.ResourceItemType == ResourceItemType.Script)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlGenericControl script = new HtmlGenericControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.TagName = "script";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.Attributes.Add("src", string.Format("{0}?url={1}", page.ResolveUrl(ConfigProvider.ResourceHandlerPath), item.Url));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.Attributes.Add("type", "text/javascript");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Form.Controls.AddAt(page.Form.Controls.Count, script);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.Write(sw.ElapsedMilliseconds);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;private void FindResource(Control c)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.Controls.Count &amp;gt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Control child in c.Controls)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FindResource(child);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;HtmlGenericControl genericControl = c as HtmlGenericControl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (genericControl != null &amp;amp;&amp;amp; genericControl.TagName.Equals("resource", StringComparison.InvariantCultureIgnoreCase))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controls.Add(genericControl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;然后在handler中生成合并后的静态资源：&lt;/p&gt;&#xD;
&lt;p&gt;在这里我们从网络上获取资源可以改为本地，这样速度快点&lt;/p&gt;&#xD;
&lt;p&gt;为了简单这里没有做合并后的文件缓存和输出缓存&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;代码 &lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Threading;&lt;/p&gt;&#xD;
&lt;p&gt;namespace StaticResourceMerge.Core&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class ResourceHandler : IHttpHandler&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private StringBuilder data = new StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int finished = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private object locker = new object();&lt;/p&gt;&#xD;
&lt;p&gt;public bool IsReusable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;public void ProcessRequest(HttpContext context)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string key = context.Request.QueryString["url"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (string.IsNullOrEmpty(key)) return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;ResourceItem&amp;gt; items = RawResourceCache.Data[key];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (items == null) return;&lt;/p&gt;&#xD;
&lt;p&gt;foreach (var item in items)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebClient wc = new WebClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wc.DownloadStringAsync(new Uri(item.Url), item.Url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;while (finished != items.Count)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Sleep(100);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write(data.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;private void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lock (locker)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finished++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.AppendFormat("/******** {0} ********/{1}{2}{3}", e.UserState.ToString(), Environment.NewLine, e.Result, Environment.NewLine);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;整个测试项目下载： &lt;br /&gt;&lt;a href="http://files.cnblogs.com/lovecherry/StaticResourceMerge.rar" target="_blank"&gt;http://files.cnblogs.com/lovecherry/StaticResourceMerge.rar&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lovecherry/aggbug/1701997.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html</id><title type="text">如何把ASP.NET TRACE HANDLER的信息持久化保存</title><summary type="text">ASP.NET TRACE是一个不错的功能可以收集下列信息Request DetailsTheRequest Detailssection displays general information about the current request and response.ValueDescriptionSession IDThe session identification for the s...</summary><published>2010-02-26T05:49:00Z</published><updated>2010-02-26T05:49:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html"/><content type="html">&lt;p&gt;ASP.NET TRACE是一个不错的功能可以收集下列信息&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;span  style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: normal; font-size: 12px; "&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Request Details&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Request Details&lt;/strong&gt;&amp;nbsp;section displays general information about the current request and response.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Session ID&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The session identification for the specified request.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Time of Request&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The time the request was made.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Request Encoding&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The character encoding for the request.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Request Type&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The HTTP method used (GET or POST).&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Status Code&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The status-code value associated with the response. For more information, see RFC 2616 at the&amp;nbsp;&lt;a id="ctl00_MTCS_main_ctl03" href="http://go.microsoft.com/fwlink/?linkid=37125" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl03',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;World Wide Web Consortium (W3C) Web site&lt;/a&gt;.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Response Encoding&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The character encoding for the response.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Trace Information&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Trace Information&lt;/strong&gt;&amp;nbsp;section displays the flow of page-level events. If you have created custom trace messages, the messages are displayed in the&amp;nbsp;&lt;strong&gt;Trace Information&lt;/strong&gt;&amp;nbsp;section also.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The custom trace category specified in a&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl04" href="http://msdn.microsoft.com/en-us/library/system.web.tracecontext.warn(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl04',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;Warn&lt;/a&gt;&lt;/span&gt;&amp;nbsp;or&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl05" href="http://msdn.microsoft.com/en-us/library/system.web.tracecontext.write(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl05',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;Write&lt;/a&gt;&lt;/span&gt;&amp;nbsp;method call, if any.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Message&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The custom trace message specified in a&amp;nbsp;&lt;strong&gt;Warn&lt;/strong&gt;&amp;nbsp;or&amp;nbsp;&lt;strong&gt;Write&lt;/strong&gt;&amp;nbsp;method, if any.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;From First (s)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The elapsed time in seconds since the first trace message was processed. The first trace message appears at the top of the list.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;From Last (s)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The elapsed time in seconds between the processing of the current trace message and the preceding trace message.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Control Tree&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Control Tree&lt;/strong&gt;&amp;nbsp;section displays information about ASP.NET server controls created in the page.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Control ID&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The identification for the control. If you have not specified an&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl06" href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.id(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl06',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ID&lt;/a&gt;&lt;/span&gt;&amp;nbsp;property for the control, ASP.NET generates an&amp;nbsp;&lt;strong&gt;ID&lt;/strong&gt;&amp;nbsp;using the&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl07" href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.uniqueid(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl07',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;UniqueID&lt;/a&gt;&lt;/span&gt;&amp;nbsp;property.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The fully qualified type of the control.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Render Size bytes&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The size in bytes of the rendered control (including child controls). This is the size of the actual HTML, XML, or other format that is sent to the browser.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;ViewState Size bytes&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The size in bytes of the control's view state (excluding child controls). For more information, see&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl08" href="http://msdn.microsoft.com/en-us/library/y5y3c2c5(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl08',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ASP.NET State Management&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;ControlState Size bytes&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The size in bytes of the control's control state (excluding child controls). For more information, see&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl09" href="http://msdn.microsoft.com/en-us/library/y5y3c2c5(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl09',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ASP.NET State Management&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Session State&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Session State&lt;/strong&gt;&amp;nbsp;section displays information about values stored in Session state, if any. For more information, see&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl10" href="http://msdn.microsoft.com/en-us/library/87069683(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl10',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ASP.NET Session State&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Session Key&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The key for data stored in session state, if any.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The fully qualified type of the object that stores the data.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;A string representation of the data stored in session state, if any.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Application State&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Application State&lt;/strong&gt;&amp;nbsp;section displays information about values stored in Application state, if any. For more information, see&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl11" href="http://msdn.microsoft.com/en-us/library/bf9xhdz4(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl11',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ASP.NET Application State&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Application Key&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The key for data stored in application state, if any.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The fully qualified type of the object that stores the data.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;A string representation of the data stored in application state, if any.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Cookies Collection&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Request Cookies&lt;/strong&gt;&amp;nbsp;and&amp;nbsp;&lt;strong&gt;Response Cookies&lt;/strong&gt;&amp;nbsp;sections display information about the cookies passed between the browser and the server on each request and response. The section displays both persistent and session cookies. ASP.NET creates some cookies automatically, such as those for cookie-based Session state and forms authentication. For more information, see&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl12" href="http://msdn.microsoft.com/en-us/library/ms178193(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl12',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ASP.NET Cookies&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The name of the cookie.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The value of the cookie, or subkeys and values if the cookie is multivalued.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Size&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The size in bytes of the cookie.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Headers Collection&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Headers Collection&lt;/strong&gt;&amp;nbsp;section displays information about request and response message header name/value pairs, which provide information about the message body or requested resource. Header information is used to control how request messages are processed and response messages are created. For more information on HTTP headers, see RFC 2616 at the&lt;a id="ctl00_MTCS_main_ctl13" href="http://go.microsoft.com/fwlink/?linkid=37125" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl13',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;World Wide Web Consortium (W3C) Web site&lt;/a&gt;.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The name of the header.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The value of the header.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Form Collection&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Form Collection&lt;/strong&gt;&amp;nbsp;section displays name/value pairs that show the form element values (control values) submitted in a request during a POST (postback).&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The name of the form variable.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The value of the form variable.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Querystring Collection&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Querystring Collection&lt;/strong&gt;&amp;nbsp;section shows the values passed in the URL. In a URL, query string information is separated from the path information by a question mark (?); multiple query string elements are separated by an ampersand (&amp;amp;). Query string name/value pairs are separated by an equals sign (=). The&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl14" href="http://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl14',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;QueryString&lt;/a&gt;&lt;/span&gt;&amp;nbsp;property of the&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl15" href="http://msdn.microsoft.com/en-us/library/system.web.httprequest(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl15',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;HttpRequest&lt;/a&gt;&lt;/span&gt;&amp;nbsp;object returns a&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl16" href="http://msdn.microsoft.com/en-us/library/system.collections.specialized.namevaluecollection(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl16',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;NameValueCollection&lt;/a&gt;&lt;/span&gt;&amp;nbsp;of query string variables.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The name of the query string variable.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The value of the query string variable.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3  style="font-size: 12px; font-weight: 700; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Server Variables&lt;/strong&gt;&lt;/p&gt;&lt;div &gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The&amp;nbsp;&lt;strong&gt;Server Variables&lt;/strong&gt;&amp;nbsp;section displays a collection of server-related environment variables and request header information. The&amp;nbsp;&lt;span &gt;&lt;a id="ctl00_MTCS_main_ctl17" href="http://msdn.microsoft.com/en-us/library/system.web.httprequest.servervariables(VS.80).aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl17',this);" style="text-decoration: none; color: #0033cc; " target="_blank"&gt;ServerVariables&lt;/a&gt;&lt;/span&gt;&amp;nbsp;property of the&amp;nbsp;&lt;strong&gt;HttpRequest&lt;/strong&gt;&amp;nbsp;object returns a&amp;nbsp;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&amp;nbsp;of server variables.&lt;/p&gt;&lt;div &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div &gt;&lt;table width="100%" style="border-collapse: collapse; width: 775px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; "&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top; "&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Value&lt;/th&gt;&lt;th style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #cccccc; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #c8cdde; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: #000066; background-position: initial initial; background-repeat: initial initial; "&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The name of the server variable.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="vertical-align: top; "&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #d5d5d3; border-bottom-color: #cccccc; border-left-color: #cccccc; font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; "&gt;The value of the server variable.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;有两种使用方式，一种是页面级的TRACE，一种是应用程序级。前者打开后直接在页面上输出TRACE信息，显然在生产环境中不适合。&lt;/p&gt;&lt;p&gt;后者可以配置不直接在页面输出而是通过TraceHandler（也就是Trace.axd）来查看：&lt;/p&gt;&lt;p&gt;&amp;lt;trace pageOutput="false" enabled="true" &amp;nbsp;requestLimit="1" &amp;nbsp;mostRecent="true"/&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_dc14d871-0a46-42e5-802c-6931409ce740" onclick="cnblogs_code_hide('dc14d871-0a46-42e5-802c-6931409ce740',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_dc14d871-0a46-42e5-802c-6931409ce740" &gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreInit&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreInit&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Init&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Init&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;InitComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;InitComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreLoad&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreLoad&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Load&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Load&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;LoadComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;LoadComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreRender&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreRender&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreRenderComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreRenderComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;SaveState&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;SaveState&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;SaveStateComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;SaveStateComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Render&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Render&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreInit&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreInit&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Init&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Init&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;InitComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;InitComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreLoad&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreLoad&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Load&lt;br /&gt;:&amp;nbsp;asdasd&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Load&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;LoadComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;LoadComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreRender&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreRender&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreRenderComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreRenderComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;SaveState&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;SaveState&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;SaveStateComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;SaveStateComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Render&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Render&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreInit&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreInit&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Init&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Init&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;InitComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;InitComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreLoad&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreLoad&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Load&lt;br /&gt;asdasd:&amp;nbsp;asdasd&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Load&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;LoadComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;LoadComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreRender&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreRender&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;PreRenderComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;PreRenderComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;SaveState&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;SaveState&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;SaveStateComplete&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;SaveStateComplete&lt;br /&gt;aspx.page:&amp;nbsp;Begin&amp;nbsp;Render&lt;br /&gt;aspx.page:&amp;nbsp;End&amp;nbsp;Render&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TraceHandler通过调用System.Web.Util.Profile的GetData()来获取所有历史请求的Trace信息，那么有没有办法获取当前请求的一条信息呢？&lt;/p&gt;&lt;p&gt;通过查看TraceContext的代码可以发现其实每一个当前请求的Trace信息保存在DataSet中，但其中的GetData方法是internal的（.NET框架中有许多internal的类型和成员比较恶心），我们尝试反射来调用：&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; "&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_842232dd-10a7-44a5-826e-81aa04b66bcf" onclick="cnblogs_code_hide('842232dd-10a7-44a5-826e-81aa04b66bcf',event)"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('842232dd-10a7-44a5-826e-81aa04b66bcf')"&gt;&lt;div id="cnblogs_code_open_842232dd-10a7-44a5-826e-81aa04b66bcf"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Application_EndRequest(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpContext.Current.Items[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;id&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Guid.NewGuid().ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TraceContext&amp;nbsp;tc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HttpContext.Current.Trace;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MethodInfo&amp;nbsp;mi&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tc.GetType().GetMethod(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;GetData&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;BindingFlags.NonPublic&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;|&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;BindingFlags.Instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;|&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;BindingFlags.InvokeMethod);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataSet&amp;nbsp;ds&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;mi.Invoke(tc,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;DataSet;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(ds&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ds.Tables.Count;&amp;nbsp;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GridView&amp;nbsp;gv&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;GridView();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gv.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ds.Tables[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gv.DataBind();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringWriter&amp;nbsp;t&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;StringWriter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HtmlTextWriter&amp;nbsp;tw&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HtmlTextWriter(t);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gv.RenderControl(tw);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;Directory.Exists(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;c:\\trace&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Directory.CreateDirectory(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;c:\\trace&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;filename&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Format(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;c:\\trace\\{0}_{1}_{2}.html&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;HttpContext.Current.Request.Url.AbsolutePath.TrimStart(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;DateTime.Now.ToString(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;yyyyMMddss&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;HttpContext.Current.Items[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;id&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.AppendAllText(filename,&amp;nbsp;t.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;不管是TraceContext还是TraceHandler都做了大量格式化操作把DataSet数据转化为HTML代码，我们在这里为了方便直接使用GridView来转换，然后把信息保存在文件中，运行几次页面可以发现多了很多日志：&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/lovecherry/trace1.jpg" border="0" alt="" width="706" height="200" /&gt;&lt;/p&gt;&lt;p&gt;查看一个日志，也记录到了所有信息：&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/lovecherry/trace2.jpg" border="0" alt="" width="1255" height="733" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;通过配置&amp;lt;trace pageOutput="false" enabled="true" &amp;nbsp;requestLimit="1" &amp;nbsp;mostRecent="true"/&amp;gt;&lt;/p&gt;&lt;p&gt;可以让队列数为1并且也只保存当前请求的数据，在这里为了简单并没有日志保存到数据库中可以自己实现。&lt;/p&gt;&lt;p&gt;如果要禁止Trace.axd其实也很简单：&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; "&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_d768855a-e27b-4a44-800a-11cb386b931f" onclick="cnblogs_code_hide('d768855a-e27b-4a44-800a-11cb386b931f',event)"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('d768855a-e27b-4a44-800a-11cb386b931f')"&gt;&lt;div id="cnblogs_code_open_d768855a-e27b-4a44-800a-11cb386b931f"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Application_BeginRequest(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(HttpContext.Current.Request.Url.ToString().Contains(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;trace.axd&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpContext.Current.Response.StatusCode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;404&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;补充几点：&lt;/p&gt;&lt;p&gt;1） 我们可以把这些操作都封装在HttpModule中，还可以实现异步的HttpModule来提高记录日志的性能。&lt;/p&gt;&lt;p&gt;2） 扩展阅读&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163927.aspx" target="_blank"&gt; http://msdn.microsoft.com/en-us/magazine/cc163927.aspx&lt;/a&gt; &amp;nbsp;自定义Trace的界面。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lovecherry/aggbug/1674223.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/08/20/1550624.html</id><title type="text">.NET 4.0改进（一）</title><summary type="text">核心服务大部分的新特性都是围绕自定义和扩展来的，原先不能自定义的东西现在可以自定义了，可以自己扩展了，然后把自己的组件在web.config中配置即可应用我们自己的组件。Web.Config精简.NET框架4.0中会把大部分配置放到machine.config中，这样在web.config中甚至可以一行代码都不写。自定义输出缓存策略输出缓存对于改善性能有很大好处，在ASP.NET 4.0中可以自定...</summary><published>2009-08-20T06:23:00Z</published><updated>2009-08-20T06:23:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/08/20/1550624.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/08/20/1550624.html"/></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/07/29/1534316.html</id><title type="text">到底怎么样的面试才是最公平的才能找到合适的人又不产生误判</title><summary type="text">一般来说，技术面试会是如下集中形式的一种或是多种的组合：1、笔试，做题目2、面对面交流3、上机编程其实我个人不喜欢笔试，感觉笔试关注的点太细了，更不喜欢上机编程，觉得这种方式的面试并不是很尊重面试者，比较喜欢轻松的面对面的交流。我面试过很多人也被很多人面试过，越来越感觉其实任何一种形式的面试都有其优点和缺点。在之前公司，我面试别人都是采用1和2组合的方式，候选人会先做一套题目，这样对每一个人都有一...</summary><published>2009-07-29T09:16:00Z</published><updated>2009-07-29T09:16:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/07/29/1534316.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/07/29/1534316.html"/></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/07/19/1526653.html</id><title type="text">最近项目的一些心得（纯贴代码）</title><summary type="text">唉，眼看着ASP.NET第一步已经出版2年了，这2年貌似自己进步也不是很大，最近完成了一个项目，分享一点代码吧，以后要复制粘贴自己也方便点，因为主要是给自己看的，大家看不懂别见怪。1、WCF中统一处理异常，并自动包装为 FaultException 返回给客户端：先建立这么一个ServiceBehavior特性：[代码]然后呢，需要实现啊这么一个自定义的ErrorHandler：[代码]Log类代...</summary><published>2009-07-19T11:56:00Z</published><updated>2009-07-19T11:56:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/07/19/1526653.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/07/19/1526653.html"/></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/05/07/1452210.html</id><title type="text">有关CPU占用和缓存的一些见解，希望给大家一些启发</title><summary type="text">缓存多份数据不一定会占用相同的多份内存、缓存的方案需要根据应用来选择，静态变量不一定不好，分布式缓存也不一定好、只要不是死循环等恶性代码问题的话，CPU如果占用的高不一定就是坏事情</summary><published>2009-05-07T13:12:00Z</published><updated>2009-05-07T13:12:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/05/07/1452210.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/05/07/1452210.html"/></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/03/06/1404561.html</id><title type="text">没有linq让我怎么活</title><summary type="text">[代码][代码]</summary><published>2009-03-06T04:34:00Z</published><updated>2009-03-06T04:34:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/03/06/1404561.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/03/06/1404561.html"/></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/01/15/1376417.html</id><title type="text">ADO.NET EF不方便之处（BUG）收集帖</title><summary type="text">考虑在项目中使用ADO.NET EF，但是怎么都用不顺手，甚至比L2S少了很多关键功能。我先列几个让我很郁闷的（只用了不到5小时就遇到这么多问题）：1）存储过程自动封装是一个很常用的功能，在ADO.NET EF中可以和L2S一样对基本的INSERT/UPDATE/DELETE映射存储过程。也可以对存储过程自动封装，把返回值是结果集的存储过程和实体进行关联，但是很吃惊的是：a) 设计器并没有提供对返...</summary><published>2009-01-15T07:49:00Z</published><updated>2009-01-15T07:49:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/01/15/1376417.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/01/15/1376417.html"/></entry></feed>
