当想要在启动Fiddler时尝试将一些文件上传到服务器时,是否有人遇到过使用HttpWebRequest类(甚至是新的HttpClient)的问题。
我遇到了这个错误,即启动fiddler时 HttpWebRequest 类的 AllowWriteStreamBuffering 属性不起作用,因此上传进度根本不起作用。即使我将AllowWriteStreamBuffering设置为true,也不会立即发送字节但会缓冲,因此我无法跟踪上载进度。当fiddler没有启动时,它可以正常工作。
此外,如果我在我的应用程序上传某个文件时关闭fiddler,它也会崩溃,抛出WebException,其中显示“底层连接已关闭:接收上发生意外错误。”
新的.net 4.5 HttpClient 类正在发生同样的事情。
答案 0 :(得分:3)
抱歉这个混乱; Fiddler目前仅支持响应而非请求的流式传输。
某些代理(如Fiddler)或其他中介将在将请求发送到服务器之前完全缓冲请求,以实现性能或功能(例如病毒扫描,断点调试)的原因。
答案 1 :(得分:2)
好的,引起我的兴趣,看来AllowWriteSteamBuffering工作服务器必须支持Chunked transfer encoding。这让我想到了关于代理和前面提到的分块编码的论坛帖子:https://groups.google.com/forum/?fromgroups=#!topic/httpfiddler/UkOiK96kg_k。
从我在这里看到的内容看来,当使用代理时,您可能会或可能不会获得分块编码等因此您的问题。
我也发现这篇关于上传的详细文章似乎很有帮助,可能会有所帮助吗?