FTP连接,调WinAPI [InternetConnect]总是执行错误,返回错误代码12007或0x2ee7

今天使用wininet的相关函数进行FTP相关操作的时候,总是在InternentConnect函数处报错,返回的错误代码是Ox2ee7(12007)。

相关调用方法如下:

_hConnect = WININET.InternetConnect(_hInternet,
                _host,
                _port,
                username,
                password,
                WININET.INTERNET_SERVICE_FTP,
                0,
                //WININET.INTERNET_FLAG_PASSIVE,
                IntPtr.Zero);

            if (_hConnect == IntPtr.Zero)
            {
                Error();
            }

 

百思不得其解,后来查到wininet.h中定义错误,12007表示ERROR_INTERNET_NAME_NOT_RESOLVED。

自然想到有可能是ftp地址什么的有问题,找不到host。

因为之前一直使用FtpWebRequest相关方法来进行ftp操作,所以自然而然的上面的_host参数我传的是ftp://192.168.82.129/。想到这,我知道问题出在这了,果然把_host的参数改为192.168.82.129之后,问题就解决了。

虽然是一个小错误,但有时还挺折腾人的啊,权当给碰到同样问题的同仁一个提示了。

作为一个.Net开发人员,这纯粹是不熟悉WinAPI导致的啊。悲剧。

1 response to "FTP连接,调WinAPI [InternetConnect]总是执行错误,返回错误代码12007或0x2ee7"

  1. By: 小李 Posted: 2012/07/20

    非常感谢,我遇到这个问题,排查了好久,还是经你指导调通的。

    [回复该评论]

发表评论

电子邮件地址不会被公开。 必填项已用*标注