看不懂的 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

posted @ 2008-03-19 17:19  老大卫  阅读(599)  评论(0编辑  收藏  举报