还有其他方法可以在不使用WebRequestMethods.Ftp.ListDirectory方法的情况下测试FTP服务器的连接吗?

时间:2019-08-23 11:14:31

标签: c# asp.net .net ftp ftpwebrequest

我正在使用第三方FTP服务器将文件上传到那里。但是在上传之前,我想实现测试连接功能,以便用户可以测试是否输入了正确的凭据。

问题在于,如果用户无权列出目录。因此,即使他可以访问文件上传,我的代码也无法用于测试连接,因为现在我正在使用WebRequestMethods.Ftp.ListDirectory方法来测试连接及其按预期的方式工作。

bool testResult = false;

try
{
    FtpWebRequest request =
        (FtpWebRequest)WebRequest.Create(objVMTestFTPConnectionRequest.FTPAddress);

    request.Method = WebRequestMethods.Ftp.ListDirectory;

    request.Credentials =
        new NetworkCredential(
            objVMTestFTPConnectionRequest.UserName, objVMTestFTPConnectionRequest.Password);

    WebResponse response = request.GetResponse();

    testResult = true;
}
catch (Exception exception)
{               
    throw;
}
return testResult;

删除该ListDirectory方法时出现以下错误

  

请求的URI对于此FTP命令无效。

如果不使用该方法就可以做到这一点,请帮帮我。

1 个答案:

答案 0 :(得分:1)

使用ReplaySubject

  • 没有了;
  • 影响小;
  • 并且可以在任何服务器上工作。

要允许测试凭据,您还需要禁用WebRequestMethods.Ftp.PrintWorkingDirectory。参见:
FtpWebRequest.KeepAlive