由于某热心人(保密保密)的帮助,把某一份大文件上传的代码调试成功,但遇到了一个很郁闷的问题...

由于本人是WIN 2003(IIS6),经过追踪得到HttpWorkerRequest request1 = this.GetWorkerRequest(application1.Context);
中request1的值为"System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6"

然后经过如下代码的处理...

while ((type1 != null) && (type1.FullName != "System.Web.Hosting.ISAPIWorkerRequest") && (type1.FullName != "Microsoft.VisualStudio.WebHost.Request") && (type1.FullName != "Cassini.Request"))
                {
                    type1 = type1.BaseType;
                }
就得到type1.FullName 为"System.Web.Hosting.ISAPIWorkerRequest"

一切都进行得很成功...

但..................................................

出现一个奇怪的问题...

用VS 2005调试,上传成功...
在IIS中右键->浏览,上传成功...

然而,在IE中输入地址,上传失败...

经过封包截取发现,数据中少了2K...

11  192.168.1.68:2764  192.168.1.68:80  64  发送  
0000  3C 55 70 6C 6F 61 64 53 74 61 74 65 20 75 70 6C    <UploadState upl
0010  6F 61 64 69 64 3D 22 63 35 66 37 32 39 62 30 2D    oadid="c5f729b0-
0020  62 35 32 64 2D 34 64 38 32 2D 38 65 63 36 2D 31    b52d-4d82-8ec6-1
0030  32 38 39 34 30 39 33 35 37 61 66 22 2F 3E 0D 0A    289409357af"/>..

12  192.168.1.68:80  192.168.1.68:2764  25  接收  
0000  48 54 54 50 2F 31 2E 31 20 31 30 30 20 43 6F 6E    HTTP/1.1 100 Con
0010  74 69 6E 75 65 0D 0A 0D 0A                         tinue......

15  192.168.1.68:80  192.168.1.68:2764  565  接收  
0000  48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D    HTTP/1.1 200 OK.
0010  0A 44 61 74 65 3A 20 57 65 64 2C 20 31 35 20 4E    .Date: Wed, 15 N
0020  6F 76 20 32 30 30 36 20 30 38 3A 32 31 3A 32 36    ov 2006 08:21:26
0030  20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 4D 69     GMT..Server: Mi
0040  63 72 6F 73 6F 66 74 2D 49 49 53 2F 36 2E 30 0D    crosoft-IIS/6.0.
0050  0A 58 2D 50 6F 77 65 72 65 64 2D 42 79 3A 20 41    .X-Powered-By: A
0060  53 50 2E 4E 45 54 0D 0A 58 2D 41 73 70 4E 65 74    SP.NET..X-AspNet
0070  2D 56 65 72 73 69 6F 6E 3A 20 32 2E 30 2E 35 30    -Version: 2.0.50
0080  37 32 37 0D 0A 43 61 63 68 65 2D 43 6F 6E 74 72    727..Cache-Contr
0090  6F 6C 3A 20 70 72 69 76 61 74 65 0D 0A 43 6F 6E    ol: private..Con
00A0  
74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 2F    tent-Type: text/
00B0  
78 6D 6C 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 6E    xml..Content-Len
00C0  
67 74 68 3A 20 33 36 31 0D 0A 0D 0A 3C 55 70 6C    gth: 361.<Upl
00D0  6F 
61 64 53 74 61 74 65 20 68 61 76 65 53 74 61    oadState haveSta
00E0  
74 75 73 3D 22 74 72 75 65 22 20 73 74 61 74 65    tus="true" state
00F0  3D 
22 43 6F 6D 70 6C 65 74 65 22 20 70 6F 73 69    ="Complete" posi
0100  74 69 6F 6E 52 61 77 3D 22 33 36 32 37 38 36 33    tionRaw="3627863
0110  39 22 20 63 6F 6E 74 65 6E 74 4C 65 6E 67 74 68    9" contentLength
0120  52 61 77 3D 22 33 36 32 37 38 36 33 39 22 20 72    Raw="36278639" r
0130  65 6D 61 69 6E 69 6E 67 4C 65 6E 67 74 68 52 61    emainingLengthRa
0140  77 3D 22 30 22 20 74 72 61 6E 73 66 65 72 72 65    w="0" transferre
0150  64 4C 65 6E 67 74 68 52 61 77 3D 22 33 36 32 37    dLengthRaw="3627
0160  38 36 33 39 22 20 70 6F 73 69 74 69 6F 6E 54 65    8639" positionTe
0170  78 74 3D 22 33 34 2E 36 20 4D 42 22 20 63 6F 6E    xt="34.6 MB" con
0180  74 65 6E 74 4C 65 6E 67 74 68 54 65 78 74 3D 22    tentLengthText="
0190  33 34 2E 36 20 4D 42 22 20 72 65 6D 61 69 6E 69    34.6 MB" remaini
01A0  6E 67 4C 65 6E 67 74 68 54 65 78 74 3D 22 30 20    ngLengthText="
01B0  62 79 74 65 73 22 20 74 72 61 6E 73 66 65 72 72    bytes" transferr
01C0  65 64 4C 65 6E 67 74 68 54 65 78 74 3D 22 33 34    edLengthText="34
01D0  2E 36 20 4D 42 22 20 65 6C 61 70 73 65 64 54 69    .6 MB" elapsedTi
01E0  6D 65 54 65 78 74 3D 22 33 2E 36 20 4D 69 6E 22    meText="3.6 Min"
01F0  
20 72 65 6D 61 69 6E 69 6E 67 54 69 6D 65 54 65     remainingTimeTe
0200  78 74 3D 22 33 2E 36 20 4D 69 6E 22 20 63 75 72    xt="3.6 Min" cur
0210  72 65 6E 74 46 69 6C 65 4E 61 6D 65 3D 22 46 3A    rentFileName="F:
0220  5C 74 6F 6F 6C 73 5C 6E 6F 72 74 6F 6E 2E 65 78    \tools\norton.ex
0230  65 22 20 2F 3E                                     e" />

好象直接用IE输入地址的时候,服务器没有返回某些重要信息,导致文件不能上传...

...

posted on 2006-11-15 16:48  gzboy  阅读(892)  评论(4编辑  收藏  举报