我正在尝试使用 System.Net.WebClient.UploadFile 将文件上传到 Web 服务器,但我不断收到 WebException。具体来说,我收到 3 个错误。我不知道为什么我没有收到相同的错误,但根据我在网上找到的内容,它们似乎都是相关的。
- 请求被中止:请求被取消。
- 连接关闭。再试一次。
- 现有连接被远程主机强行关闭。
它似乎有些随机(并不总是相同的文件、时间量或我能弄清楚的任何其他模式)。此外,这不会发生在我的工作网络上(上传时间不到 2 秒),但确实发生在家里通过 DSL (上传大约需要 2 分钟)。
根据我在网上的发现,这些错误与保活有关。不幸的是,WebClient 没有提供任何关闭这些功能的方法(我不确定我是否愿意这样做,因为这是一项性能功能)。
我认为这可能与超时有关,但我不知道为什么。服务器是 ASP.Net MVC,超时设置为一小时。
<httpRuntime
maxRequestLength="10024"
executionTimeout="3600"
/><!-- 10024 = 10MB, 3600 = 1hr -->
我对解决这个问题的两种方法都很感兴趣,所以它不会发生,还有恢复技术(只是再次发出请求似乎没有效果)。
一些背景知识,这是用于将照片上传到服务器的 WinForms 应用程序。服务器是一个 ASP.Net MVC 应用程序。客户端已经正常工作了很长时间,但现在失败了,因为我将它切换到 ASP.Net MVC(它使用经典的 ASP 和 SA FileUp)。客户端仅更改以适应新的 URL,除此之外它几乎相同。