上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
  2011年4月29日
摘要: HTTP处理程序的用户十分明确:改变某类资源的处理方式,并将其返回给用户。我们可以通过处理程序基于运行时条件或某种形式的逻辑对传统资源进行筛选,还可使HTTP处理程序以异步方式来返回特定的页面或资源。 对于HTTP处理程序来说,注册是一个关键步骤,它为ASP.NET提供有关处理程序的信息。但我们都需要修改应用程序的web.config文件,以便为ASP.NET应用程序提供处理程序的信息。 通过ASHX扩展和处理程序编程模型,我们可以避免修改web.config。部署新的HTTP处理程序只需要将对应的文件复制到应用程序的某个文件夹下即可。以ASHX资源的形式处理程序 ashx文件包含一个特殊的. 阅读全文
posted @ 2011-04-29 23:17 辛勤的代码工 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 数据库管理系统往往都提供二进制大对象的支持。当然,二进制对象字段不一定非要存储图像,它还可以存储媒体文件或长文本文件或其他二进制内容。 下面以从数据库加载员工相片为例,展示一个HTTP处理程序的例子:public class DbImageHandler : IHttpHandler{ public void ProcessRequest(HttpContext ctx) { //从查询字串中获取员工ID int id = -1; bool reaust = Int32.TryParse(ctx.Request.QueryString["id"], out id); //如 阅读全文
posted @ 2011-04-29 21:38 辛勤的代码工 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 图片查看器处理程序 为加快处理速度,IIS会直接处理Web应用程序中的某些静态资源,而不会调用ISAPI扩展。这些静态文件包括图像和HTML文件。如果从浏览器直接请求gif或jpg文件,IIS会获取指定的资源,正确设置响应缓冲的内容类型,并将其输出成文件的字节流. 如果浏览器地址指向包含多个图像的虚拟目录呢?在这种情况下,IIS无法识别文件夹的内容,而可能只返回文件的列表。 那么如何实现指向该虚拟目录地址,在浏览器中显示该目录下图片的预览呢?图片查看器HTTP处理程序的设计 首先,需要确定如何使IIS知道我们的意图?可以通过在文件夹名称后追加一个特定的端点,使IIS将请求传给ASP.NET,由 阅读全文
posted @ 2011-04-29 18:02 辛勤的代码工 阅读(455) 评论(0) 推荐(0) 编辑
  2011年4月28日
摘要: 如果要让ASP.NET以某种非标准的方式处理请求,我们可以编写自定义的HTTP处理程序。通过编写处理程序,用户可以通过Web调用各种功能。如,我们可以实现单击计数器和各种图像处理(包括图像的动态生成、服务器端缓存、防止图像盗链)。 HTTP处理程序能够以同步方式工作,也能以异步方式工作。 常规的ISAPI扩展和筛选器应在IIS元库中注册。如果希望HTTP处理程序参与进处理Web请求的HTTP管道,则要在web.config文件中注册它。它的使用方式与ISAPI扩展类似,可以直接通过URL进行调用。IHttpHandler接口 HTTP处理程序是实现IHttpHandler接口的类。更准确的讲. 阅读全文
posted @ 2011-04-28 22:42 辛勤的代码工 阅读(468) 评论(0) 推荐(0) 编辑
摘要: HTTP处理程序是真正负责处理请求的组件,它实现了IHttpHandler接口。该接口的ProcessRequest方法是控制请求处理的“中央控制台”。如,Page类实现IHttpHandler接口,它的ProcessRequest方法负责加载和保存视图状态,还负责引发一些常见的事件(Init、Load、PreRender等)。 ASP.NET会将每个传入的HTTP请求映射到相应的HTTP处理程序。HTTP处理程序工厂创建这些处理程序的实例对象(如,PageHandlerFactory类能解析被请求的aspx资源的源代码,编译后返回代表相应页面的类实例)。 HTTP模块是实现IHttpMod. 阅读全文
posted @ 2011-04-28 00:43 辛勤的代码工 阅读(584) 评论(0) 推荐(0) 编辑
  2011年4月27日
摘要: ASP.NET页面输出缓存功能允许我们对页面的响应进行缓存,这样,无需执行整个页面,后续的请求也会被处理,即只返回缓存的输出。输出的缓存分两个级别:页面的整个和局部。页面缓存很智能,能够基于请求的URL、查询字符串、参数或自定义字符串来保持输出。 输出缓存的配置非常方便,即可通过@OutputCache指令以声明方式配置,也可通过HttpCachePolicy类以编程方式进行配置。 页面输出缓存只针对匿名内容。对缓存的页面请求在IIS6.0下,由IIS直接处理,在IIS5.0下,由ASP.NET工作进程处理。不论哪种情况,页面请求不会进入ASP.NET管道,而只有在管道中才能进行身份验证,因. 阅读全文
posted @ 2011-04-27 01:02 辛勤的代码工 阅读(695) 评论(1) 推荐(1) 编辑
  2011年4月26日
摘要: 针对SQL Server的缓存依赖项 在ASP.NET 2.0及更高版本中,有一个专用的类SqlCacheDependency,该类继承于CacheDependency,支持SQL Server表的依赖项。它兼容于MSDE、SQL Server 7.0和SQL Server的后续版本。数据库依赖项的内幕 时至今日,除SQL Server 2005及更高版本外,没有哪个数据库本身能够检测更改的发生。这表明:对于SQL Server 7.0、SQL Server 2000和非SQL Server数据库,必须创建数据库级的基础结构,以便对表的更改做出提示,允许它们被捕获,并将更改通知给ASP.NET 阅读全文
posted @ 2011-04-26 00:15 辛勤的代码工 阅读(615) 评论(0) 推荐(0) 编辑
  2011年4月25日
摘要: 自定义缓存依赖项的设计 从ASP.NET 2.0开始,CacheDependency类是可继承的,即我们能够从它派生出自己的类,实现通过外部的事件源使缓存项失效的机制。基类CacheDependency的扩展 为能将派生类整合到现有的ASP.NET缓存基础结构中,并对其提供充分的支持,相对于ASP 1.x版本,CacheDependency类加入了许多公共成员和受保护成员。详见下表: 自定义依赖项要依靠其父类与Cache对象进行交互。CacheDependency的派生类会调用NotifyDependencyChanged方法,以便通知基类依赖项已被更改。作为响应,基类会更新HasChange 阅读全文
posted @ 2011-04-25 23:01 辛勤的代码工 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 在ASP.NET中,缓存有两种形式:应用程序数据的缓存和页面输出的缓存,这两种形式相互独立。应用程序数据的缓存 ASP.NET缓存API是以Cache对象为中心的全局数据容器,由所有会话共享。Cache对象是线程安全的容器,能自动移除无用的数据项,支持各种形式的信赖关系,还可以指定移除回调和优先级。Cache类 Cache类位于System.Web.Caching命名空间中,可以将Cache看作是应用程序级数据和对象的仓库。 Cache类的实例是针对每个AppDomain而创建的,只要所处AppDomain运行,它就一直有效。应用程序的ASP.NET Cache的当前实例,可以由HttpCo. 阅读全文
posted @ 2011-04-25 21:06 辛勤的代码工 阅读(968) 评论(0) 推荐(0) 编辑
摘要: ASP.NET页面提供了ViewState属性,使应用程序能在同一页面的两次连续请求间保存某些数据,并生成调用上下文。视图状态代表页面最近一次接受服务器处理以来的状态。这种状态会被保存(但不一定是在客户端),并在页面请求被处理时恢复。 默认情况下,视图状态以添加到页面中的隐藏字段的形式来维护。因此,状态信息会与页面一起来回传输。视图状态中存储的信息只与页面和其中的某些子控件有关,浏览器不会以任何形式来使用它。 视图状态优点:不需占用任何服务器资源,实现容易,使用方法。缺点:对浏览器无用,增加HTML代码中的冗余数据。StateBag类 StateBag类是视图状态幕后的类,能够管理ASP.N. 阅读全文
posted @ 2011-04-25 13:55 辛勤的代码工 阅读(722) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页