C# 为什么HttpWebResponse.ContentLength突然返回-1?
我们这里有一个特殊的问题。 我们在客户端有一个代码,可以使用HTTPWebResponse/HttpWebRequest从web服务器下载一些文件 我们正在使用C# 为什么HttpWebResponse.ContentLength突然返回-1?,c#,.net,httpwebresponse,http-content-length,C#,.net,Httpwebresponse,Http Content Length,我们这里有一个特殊的问题。 我们在客户端有一个代码,可以使用HTTPWebResponse/HttpWebRequest从web服务器下载一些文件 我们正在使用HttpWebResponse.ContentLength获取文件的大小。。。 这些天来,它一直运转良好,但突然它开始出现-1 但是,当我们绕过服务器上的负载平衡器时,它可以工作。。 任何人都可以给出一个公平的想法,说明为什么会发生这种情况。ContentLength只报告服务器在Content Length标题中发送的内容。或者,如果服
HttpWebResponse.ContentLength
获取文件的大小。。。
这些天来,它一直运转良好,但突然它开始出现-1
但是,当我们绕过服务器上的负载平衡器时,它可以工作。。
任何人都可以给出一个公平的想法,说明为什么会发生这种情况。ContentLength只报告服务器在
Content Length
标题中发送的内容。或者,如果服务器没有发送任何内容,它可能会报告-1
不管是什么问题,都是服务器的问题,而不是HttpWebResponse的问题
由于您说过如果禁用负载平衡器,问题就会消失,因此我怀疑负载平衡器激活的服务器中至少有一台没有设置标头。
HttpWebResponse.ContentLength
只报告服务器在Content Length
标头中发送的内容。或者,如果服务器没有发送任何内容,它可能会报告-1
不管是什么问题,都是服务器的问题,而不是HttpWebResponse的问题
由于您说过,如果禁用负载平衡器,问题就会消失,因此我怀疑负载平衡器激活的服务器中至少有一台没有设置标头。来自MSDN的文档: 如果响应中未设置Content Length标头,则ContentLength将设置为值-1
简单地说——服务器没有发送
内容长度
标题。来自MSDN的文档:
如果响应中未设置Content Length标头,则ContentLength将设置为值-1
简单地说,服务器没有发送
内容长度
标题。谢谢Jim!我使用此内容长度获取文件的大小,以相应地更新进度条。。但是文件会被下载。。因此,我收到了服务器的响应。是的,服务器正在发送响应,但没有设置内容长度
标题。我是否需要查看IIS以解决此问题?@Sathish:我不是IIS专家,因此我没有任何细节。您可以搜索[IIS内容长度负载平衡器],然后查看出现了什么。或者在superuser.com上发布一个问题。谢谢你,吉姆!我使用此内容长度获取文件的大小,以相应地更新进度条。。但是文件会被下载。。因此,我收到了服务器的响应。是的,服务器正在发送响应,但没有设置内容长度
标题。我是否需要查看IIS以解决此问题?@Sathish:我不是IIS专家,因此我没有任何细节。您可以搜索[IIS内容长度负载平衡器],然后查看出现了什么。或者在superuser.com.Hi甜甜圈上发布问题。。但是服务器正在发送响应。。。在我的情况下,我可以从服务器下载文件。。但只有Content-Length属性返回-1@Sathish我知道响应的主体正在被发送,但是内容长度
头是不同的(这就是服务器没有发送的内容)。因此,我应该如何解决这一问题。。服务器端或IIS设置是否有需要检查的内容。。但是服务器正在发送响应。。。在我的情况下,我可以从服务器下载文件。。但只有Content-Length属性返回-1@Sathish我知道响应的主体正在被发送,但是内容长度
头是不同的(这就是服务器没有发送的内容)。因此,我应该如何解决这一问题。。是否需要检查服务器端或IIS设置