看不懂的 neatUpload 控件
<add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload"/>
ASP.NET Pipeline的BeginRequest事件中截获当前的HttpWorkerRequest对象,然后直接调用其ReadEntityBody等方 法获取客户端传递过来的数据流,并加以分析和处理。在ASP.NET 1.1时期,这么做的目的是为了直接将数据写入硬盘,以避免上传内容消耗太多服务器内存,但是现在自然已经不会因为这个原因而这么做了。从客户端发起请求 到一定规模的数据传输完毕需要一段时间,那么从HttpWorkerRequest对象中读取数据流自然需要一段时间,而在这段时间内,客户端可以使用新 的请求进行轮询来获得当前上传的状况。这就是获得上传进度的最传统的做法。
----------------------------------------------------------------------------------------
IIS 6.0 的主要过程:
1.首先由inetinfo.exe接收到HTTP请求
2.检查脚本映射,然后调用 ASP.NET ISAPI 扩展
3.将消息送入aspnet_wp.exe进程,并加载运行时
4.调用ISAPIRuntime.ProcessRequest方法创建HttpWorkerRequest对象
6.创建HttpContext请求上下文
7.创建HttpApplication 类的实例
8.初始化Web.Config中注册的所有模块(HttpModule)
9.调用HttpApplication 类的 Init 方法
10.触发事件,实例化页面
————————————————————————————
< p>引自: http://topic.csdn.net/t/20040314/21/2842268.html
几个关键函数:
HasEntityBody | 返回一个值,该值指示请求是否包含正文数据。 |
IsEntireEntityBodyIsPreloaded | 返回一个值,该值指示是否所有请求数据都可用,以及是否不需要对客户端进行进一步读取。 |
GetPreloadedEntityBody | 已重载。返回 HTTP 请求正文当前已被读取的部分 |
ReadEntityBody | 已重载。读取客户端的请求数据(在尚未预加载时)。 |
----------------------------------------------------------------------------------------
1) config.cs 中有加密算法 config()
2)认识 httpWorkRequest 类:
httpRequest:能够读取客户端在 Web 请求期间发送的 HTTP 值
httpWorkRequest:定义由 ASP.NET 托管代码用于处理请求的基本辅助方法和枚举。
大多数情况下,代码不会直接处理 HttpWorkerRequest,这是因为请求和响应数据是通过 HttpRequest 和 HttpResponse 类公开的。一些内部 ASP.NET 类扩展了此类。如果代码实现自己的宿主环境,则它需要扩展此类以调用 ProcessRequest 方法。
reference
http://www.cnblogs.com/wucountry/archive/2005/10/12/305688.html
http://www.cnblogs.com/stg609/articles/1262769.html