Я работаю над службой Windows, которая загружает файлы на сервер sftp, используя SSH.NET. Проблема в том, что когда я запускаю код, отвечающий за отправку файла из консольного приложения Windows, все работает нормально, но когда точно такой же код выполняется из службы Windows, я получаю исключение при подключении к SFTP: «Невозможно установить соединение, поскольку целевой компьютер активно отказывает он "* * 1001
У меня на той же машине работает SFTP-сервер для тестирования.
public void Send(string host, string userName, int port, string password, string filePath)
{
var connectionInfo = new ConnectionInfo(host, userName, new PasswordAuthenticationMethod(userName, password));
try
{
var sftpClient = new SftpClient(connectionInfo);
sftpClient.Connect(); // exception occurs there
using (FileStream fileStream = File.OpenRead(filePath))
{
sftpClient.UploadFile(fileStream, $"{Path.GetFileName(filePath)}", true);
}
sftpClient.Disconnect();
sftpClient.Dispose();
}
catch (Exception exception)
{
Logger.Log($"{host} | {password} | {port} | {userName}");
Logger.Log(exception.Message);
Logger.Log(exception.StackTrace);
}
}
У кого-нибудь есть идея, что происходит? Я думаю, что это может быть некоторой проблемой конфигурации, потому что, как я сказал, тот же код отлично работает из консольного приложения.