捕获FTP错误消息

时间:2014-07-22 08:47:30

标签: c# ftpwebrequest

我使用FTPWebRequest和FTPWebResponse连接到FTP服务器。此FTP服务器检查来自客户端的失败登录尝试次数,如果在指定时间段内登录尝试失败次数过多,则暂时禁止客户端。对于最初失败的登录尝试,以及被禁止后的任何尝试,我得到

"远程服务器返回错误:(530)未登录。"

如果我在被禁止后尝试手动连接到FTP服务器(即从DOS提示符下),我会

c:\> ftp a.b.c.d
Connected to a.b.c.d.
530 Host w.x.y.z has been temporarily banned from the FTP server.
Connection closed by remote host.

w.x.y.z是我本地系统的IP地址。

我有什么方法可以捕捉到消息的文本

" 530主机w.x.y.z已被暂时禁止进入FTP服务器。"

我需要能够区分常规失败的登录尝试("未登录")和由于被禁止导致的登录尝试,以及我可以看到执行此操作的唯一方法捕获并检查错误消息。

1 个答案:

答案 0 :(得分:1)

幸运的是,在调用WebException时抛出的GetResponse内部有FtpWebResponse,这正是您想要的:

try
{
    FtpWebResponse response = (FtpWebResponse) request.GetResponse();
}
catch (WebException ex)
{
    if (ex.Response != null)
        Console.WriteLine(((FtpWebResponse)ex.Response).StatusDescription);
}