以下代码:
{{1}}
在.NET 4.5中运行良好 - 它可以毫无问题地下载文件,但是在.NET 3.0或3.5中它不起作用 - 文件显示为0kb。
有人会知道为什么会出现这种差异吗?我想知道是否有一些额外的标头从3.0中缺少了4.5包含在内?
它也不会抛出任何错误。
更新
最终抛出"操作已经超时。"异常。
更新#2:
我从HTTPS更改为HTTP,这似乎适用于我的特定情况。实际上,我的HTTP调用将其重定向到HTTPS。但是,直接使用HTTPS并不适用于.NET 3.0。
答案 0 :(得分:0)
默认超时可能会有所不同,具体取决于框架版本。这是Web.config文件中绑定配置的情况,所以我怀疑它也是这种情况。
我建议创建一个派生的WebClient类并覆盖GetWebRequest方法,以按照此帖子中的建议设置自定义超时:https://stackoverflow.com/a/3052637/2046539受到此博客帖子的启发:http://w3ka.blogspot.be/2009/12/how-to-fix-webclient-timeout-issue.html
作为一般规则:绝不信任默认值。您应该始终使用自己的值。大多数情况下,默认值没有记录,并且是实现细节。