只是想问问是否有人在启动Fiddler时尝试将某些文件上传到服务器时遇到使用HttpWebRequest类(甚至是新的HttpClient)的问题。
我遇到了一个错误,即 HttpWebRequest 类的 AllowWriteStreamBuffering 属性在启动小提琴手时不起作用,因此上传进度根本不起作用。即使我将 AllowWriteStreamBuffering 设置为 true,字节也不会立即发送,而是被发送,因此我无法跟踪上传进度。当小提琴手未启动时,它可以正常工作。
此外,如果我在应用程序上传某个文件时关闭小提琴手,它也会崩溃,抛出 WebException,上面写着"底层连接已关闭:接收时发生意外错误"。
同样的事情也发生在新的.net 4.5 HttpClient类上。
很抱歉造成混乱;Fiddler 目前仅支持响应流,不支持请求。
一些代理(如 Fiddler)或其他中介将在将请求发送到服务器之前完全缓冲请求,以满足性能或功能(例如病毒扫描、断点调试)的原因。
http://www.fiddler2.com/fiddler/help/streaming.asp
好的,引起了我的兴趣,似乎 AllowWriteSteamBuffering 要工作,服务器必须支持分块传输编码。 这让我想到了这篇关于代理和上述分块编码的论坛帖子: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