У меня есть консольное приложение ac # .netcore 2.2 для тестирования команд ftp.Он отлично работает на моем компьютере разработчика, но не на моем производственном сервере.Команда ftp выполняется, но ничего не происходит, и никаких ошибок не возникает.
Вот версия dotnet, установленная на моем производственном сервере:
Воткод моего приложения
class Program
{
static async Task Main(string[] args)
{
var config = new FtpServerConfiguration
{
Login = "badlogin",
Password = "abcd1234",
Server = "ftp.myserver.com"
};
Console.WriteLine("First Attempt with bad login");
var results = await GetFileList(config, "");
Console.WriteLine("\nSecond Attempt with good login");
config.Login = "goodlogin";
results = await GetFileList(config, "");
Console.ReadLine();
}
private static async Task<IEnumerable<string>> GetFileList(FtpServerConfiguration config, string remoteDir)
{
IList<string> files = new List<string>();
try
{
var request = (FtpWebRequest)WebRequest.Create(string.Concat("ftp://", config.Server, "/", remoteDir));
request.KeepAlive = true;
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.UseBinary = true;
request.UsePassive = config.UsePassive;
request.EnableSsl = false;
request.Timeout = config.Timeout;
request.Credentials = new NetworkCredential(config.Login, config.Password);
Console.WriteLine("send command");
using (var response = await request.GetResponseAsync())
{
Console.WriteLine("response received");
var reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
files.Add(line);
line = reader.ReadLine();
}
}
Console.WriteLine("Files :");
foreach (var file in files)
{
Console.WriteLine("\t" + file);
}
}
catch (Exception ex)
{
Console.WriteLine("ERROR: "+ex.Message);
}
return files;
}
}
public class FtpServerConfiguration
{
public string Server { get; set; }
public string Login { get; set; }
public string Password { get; set; }
public bool UsePassive { get; set; }
public int Timeout { get; set; } = 10000;
}
Я запрашиваю один и тот же FTP-сервер с одинаковыми учетными данными на 2 компьютерах, и вот результаты на моем компьютере разработчика
и затем на моем производственном сервере
Кто-нибудь имеет представление о том, что происходит?Спасибо