【问题标题】:WinInet FtpOpenFile timeoutWinInet FtpOpenFile 超时
【发布时间】: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
    );

文件确实在服务器上创建。

我想知道这个函数的超时值是多少,是否有任何改变?

【问题讨论】:

    标签: wininet


    【解决方案1】:

    FtpOpenFileFtpGetFile 一直收到 12002 Internet Timeout,但在我的 InternetConnect 调用中添加 INTERNET_FLAG_PASSIVE 标志后,两者现在都可以正常工作。

    关于超时,通常您会使用INTERNET_OPTION_CONNECT_TIMEOUTINTERNET_OPTION_RECEIVE_TIMEOUTINTERNET_OPTION_SEND_TIMEOUTInternetSetOption。有关选项标志的详细信息,请参见此处:https://docs.microsoft.com/en-us/windows/win32/wininet/option-flags

    但是,由于一个非常老的 MS 错误,如上所述设置超时根本没有任何效果。有一种解决方法可以减少超时但不增加。它是通过创建一个新的工作线程并等待它来完成的。请参阅此处的文章: https://mskb.pkisolutions.com/kb/224318

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2019-10-14
      相关资源
      最近更新 更多