我们在这里有一个奇怪的问题。 我们有一个代码在客户端使用HTTPWebResponse/HttpWebRequest从网络服务器下载一些文件我们使用HttpWebResponse.ContentLength
来获得文件的大小... 所有这些日子它工作正常,但突然它开始给 - 1 然而,当我们绕过它工作在服务器上的负载均衡.. 谁能请提供关于为什么这可能发生为什么HttpWebResponse.ContentLength突然返回-1?
1
A
回答
2
HttpWebResponse.ContentLength
刚刚报告的是服务器在Content-Length
头发送一个公平的想法。或者,如果服务器没有发送任何内容,它可能会报告-1。
无论问题出在哪里,它都是在服务器上,而不是在HttpWebResponse
上。
既然您说如果禁用负载均衡器,问题就会消失,那么我会怀疑负载均衡器激活的服务器中至少有一个未设置标题。
2
从MSDN的文档上HttpWebResponse.ContentLength
property:
如果的ContentLength头没有在响应中设置,的ContentLength被设置为值-1。
简而言之 - 服务器不发送Content-Length
标头。
相关问题
- 1. 为什么IndexOf返回-1?
- 2. 为什么ISNUMERIC('。')返回1?
- 3. 为什么UINT_MAX返回-1?
- 4. 为什么sqlitedatabase.insert返回-1?
- 5. 为什么[] .push([])返回1?
- 6. 为什么retainCount返回-1
- 7. 为什么GetCurrentProcess返回-1?
- 8. 为什么HttpURLConnection.getResponseCode()返回1?
- 9. SDL_BlitSurface()返回-1 ...为什么?
- 10. 为什么(true && 1)返回1,但(1 && true)返回true?
- 11. 为什么getdate返回1 \ 1 \ 1900
- 12. 为什么1!= 1返回true?
- 13. SimpleDateFormat返回1小时为什么?
- 14. 为什么方法返回-1?
- 15. 为什么Boost :: multiprecision :: sqrt(1)返回0?
- 16. 为什么1 && 2返回2?
- 17. 为什么getppid()从孩子返回1
- 18. 为什么FindFirstFileW总是返回-1?
- 19. 为什么getPointerCount()总是返回1?
- 20. 为什么count(false)返回1?
- 21. 为什么这只返回1行?
- 22. 这段代码为什么返回-1?
- 23. Xpath - 为什么只返回1个值?
- 24. BASH:为什么`printf`返回1?
- 25. 为什么preg_match不返回1?
- 26. 为什么返回-1而不是0?
- 27. 为什么chdir(“〜/ dev /”)返回-1?
- 28. 为什么在JavaScript中返回-1
- 29. 为什么filter_var(真,FILTER_VALIDATE_INT)返回1
- 30. 为什么[NSObject respondsToSelector:@selector(init)]返回1?
谢谢吉姆!我用这个内容长度来获取文件的大小来相应地更新进度条..但是文件被下载..所以我得到了服务器的响应.. – SSK 2013-03-15 13:29:06
是的,服务器发送响应,但不是设置“Content-Length”标题。 – 2013-03-15 13:31:11
是否有需要查看IIS修复此问题? – SSK 2013-03-15 13:31:49