1

只是想问一下在启动 Fiddler 时尝试将某些文件上传到服务器时是否有人遇到了使用 HttpWebRequest 类(甚至是新的 HttpClient)的问题。

我遇到了这个bug,即启动fiddler时HttpWebRequest类的AllowWriteStreamBuffering属性不起作用,所以上传进度根本不起作用。即使我将 AllowWriteStreamBuffering 设置为 true,字节也不会立即发送而是缓冲,因此我无法跟踪上传进度。未启动提琴手时可以正常工作。

此外,如果我在我的应用程序上传某些文件时关闭 fiddler,它也会崩溃并抛出 WebException,上面写着“底层连接已关闭:接收时发生意外错误。”

新的 .net 4.5 HttpClient类也发生了同样的事情。

4

2 回答 2

3

对困惑感到抱歉; Fiddler 目前只支持响应流,不支持请求

出于性能或功能(例如病毒扫描、断点调试)的原因,一些代理(如 Fiddler)或其他中介会在将请求发送到服务器之前完全缓冲请求。

http://www.fiddler2.com/fiddler/help/streaming.asp

于 2012-12-11T23:04:17.170 回答
2

好的,这引起了我的兴趣,看来 AllowWriteSteamBuffering 工作服务器必须支持Chunked transfer encoding。这让我看到了这个关于代理和前面提到的分块编码的论坛帖子:https ://groups.google.com/forum/?fromgroups=#!topic/httpfiddler/UkOiK96kg_k 。

从我在这里读到的内容看来,使用代理时,您可能会或可能不会获得分块编码等,因此是您的问题。

我还发现这似乎是一篇关于上传反馈的很好的详细文章,这可能会有所帮助?

http://blogs.msdn.com/b/delay/archive/2009/09/08/when-framework-designers-outsmart-themselves-how-to-perform-streaming-http-uploads-with-net.aspx

于 2012-12-11T17:12:47.160 回答