WinInet FtpOpenFile 超时
Posted
技术标签:
【中文标题】WinInet FtpOpenFile 超时【英文标题】:WinInet FtpOpenFile timeout 【发布时间】:2021-04-19 21:41:25 【问题描述】:我有一个使用 WinInet 的 FTP 功能定期上传文件的应用程序。它已经运行了多年,但在 2021 年 4 月 1 日开始失败。使用 FtpOpenFile 打开文件失败,状态为 12002 Internet Timeout。调用看起来像这样..
hiOpenFile = FtpOpenFile(
hiSiteConnect,
"TEMP.htm",
GENERIC_WRITE,
FTP_TRANSFER_TYPE_ASCII,
NULL
);
文件确实在服务器上创建。
我想知道这个函数的超时值是多少,是否有任何改变?
【问题讨论】:
【参考方案1】:FtpOpenFile
和 FtpGetFile
一直收到 12002 Internet Timeout,但在我的 InternetConnect
调用中添加 INTERNET_FLAG_PASSIVE
标志后,两者现在都可以正常工作。
关于超时,通常您会使用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
【讨论】:
以上是关于WinInet FtpOpenFile 超时的主要内容,如果未能解决你的问题,请参考以下文章