如何解决WinInet FtpOpenFile 超时
我有一个使用 WinInet 的 FTP 功能定期上传文件的应用程序。它已运行多年,但于 2021 年 4 月 1 日开始失败。它无法使用 FtpOpenFile 打开状态为 12002 Internet Timeout 的文件。电话看起来像这样..
hiOpenFile = FtpOpenFile(
hiSiteConnect,"TEMP.htm",GENERIC_WRITE,FTP_TRANSFER_TYPE_ASCII,NULL
);
该文件确实是在服务器上创建的。
我想知道这个函数的超时值是多少,是否有办法改变它?
解决方法
我一直收到 FtpOpenFile
和 FtpGetFile
的 12002 Internet Timeout,但在将 INTERNET_FLAG_PASSIVE
标志添加到我的 InternetConnect
调用后,它们现在都可以工作了。
关于超时,通常您会使用 INTERNET_OPTION_CONNECT_TIMEOUT
、INTERNET_OPTION_RECEIVE_TIMEOUT
或 INTERNET_OPTION_SEND_TIMEOUT
和 InternetSetOption
。有关选项标志的详细信息,请参见此处:https://docs.microsoft.com/en-us/windows/win32/wininet/option-flags
然而,由于一个非常古老的 MS 错误,如上设置超时根本没有任何影响。有一种解决方法可以减少超时但不会增加超时。它是通过创建一个新的工作线程并等待它来完成的。文章见这里: https://mskb.pkisolutions.com/kb/224318
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。