C# Fiddler使HttpWebRequest/HttpClient行为异常

C# Fiddler使HttpWebRequest/HttpClient行为异常,c#,.net,httpwebrequest,fiddler,C#,.net,Httpwebrequest,Fiddler,只是想问一下,当Fiddler启动时,是否有人在尝试向服务器上传文件时遇到了使用HttpWebRequest类(甚至是新的HttpClient)的问题 我遇到了错误,即启动fiddler时,HttpWebRequest类的AllowWriteStreamBuffering属性不起作用,因此上载进度根本不起作用。即使我将AllowWriteStreamBuffering设置为true,字节也不会立即发送,但会被缓冲,因此我无法跟踪上载进度。当fiddler未启动时,它工作正常 此外,如果我在应用程

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

我遇到了错误,即启动fiddler时,HttpWebRequest类的AllowWriteStreamBuffering属性不起作用,因此上载进度根本不起作用。即使我将AllowWriteStreamBuffering设置为true,字节也不会立即发送,但会被缓冲,因此我无法跟踪上载进度。当fiddler未启动时,它工作正常

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


新的.net 4.5 HttpClient类也出现了同样的情况。

好的,我对此很感兴趣,服务器必须支持AllowWriteStreamBuffering。这让我找到了这篇关于代理和上述分块编码的论坛帖子:

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

我还发现这是一篇很好的关于上传的详细文章,并提供了一些反馈,这可能会有帮助吗


好的,我对此很感兴趣,似乎允许WriteSteamBuffering在服务器必须支持的情况下工作。这让我找到了这篇关于代理和上述分块编码的论坛帖子:

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

我还发现这是一篇很好的关于上传的详细文章,并提供了一些反馈,这可能会有帮助吗


很抱歉给您带来了困惑;Fiddler目前只支持响应流,不支持请求流

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


很抱歉给您带来了困惑;Fiddler目前只支持响应流,不支持请求流

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


Fiddler充当服务器和客户端之间的代理。因此,当您访问服务器时,它将通过fiddler作为代理服务器。如果您在中途关闭fiddler,连接将关闭,因此您的最后一个问题。不确定AllowWriteStreamBuffering问题。我想象fiddler不会将其转发到服务器上,反之亦然。我猜AllowWriteStreamBuffering不是标准的HTTP。它可能是微软独有的实现,所以Fiddler显然不会对它做任何事情。您能在Fiddler中看到的HTTP响应请求中看到它吗?在HTTP头文件中,可能?没有额外的头文件,AllowWriteStreamBuffering属性阻止缓冲,因此我可以通过立即写入请求流发送字节,而无需在HttpWebBrowser缓存中缓冲这些字节,但是Fiddler使这个属性不起作用我花了很长时间试图进行上传进度跟踪,但直到我关闭一个Fiddler才成功。我找到了一些零碎的东西,不是这个tbh的专家,但可能会有所帮助。Fiddler充当服务器和客户端之间的代理。因此,当您访问服务器时,它将通过fiddler作为代理服务器。如果您在中途关闭fiddler,连接将关闭,因此您的最后一个问题。不确定AllowWriteStreamBuffering问题。我想象fiddler不会将其转发到服务器上,反之亦然。我猜AllowWriteStreamBuffering不是标准的HTTP。它可能是微软独有的实现,所以Fiddler显然不会对它做任何事情。您能在Fiddler中看到的HTTP响应请求中看到它吗?在HTTP头文件中,可能?没有额外的头文件,AllowWriteStreamBuffering属性阻止缓冲,因此我可以通过立即写入请求流发送字节,而无需在HttpWebBrowser缓存中缓冲这些字节,但是Fiddler使这个属性不起作用我花了很长时间试图进行上传进度跟踪,但直到我关闭一个Fiddler才成功。我找到了一些碎片,不是这个tbh的专家,但可能会有帮助?所以这是正常行为?net CLASES实际上认为他们已经向服务器发送了字节,而这些字节实际上是由fiddler分配的。谢谢,这是意料之中的事;据客户机所知,服务器得到了字节。这里的“服务器”实际上就是“代理”,这是正常的行为吗?net CLASES实际上认为他们已经向服务器发送了字节,而这些字节实际上是由fiddler分配的。谢谢,这是意料之中的事;据客户机所知,服务器得到了字节。这里的“服务器”实际上就是“代理”