У меня есть некоторые проблемы при перемещении файла из хранилища в другое в веб-задании.
Я использую команду _session.MoveFile("mypathsource","mypathdestination")
.
Моя веб-работа запускается каждые 10 минут.
Когда я развертываю мою веб-работу, она перемещает файл, но после нескольких итераций моей веб-работы она не перемещает файл. Это не бросило никакого исключения. Просто не перемещайте файл.
Я обновил пакет NuSCet WinSCP до версии 5.15.2. и я использую .Net Framework 4.6.1.
public void SendFileToArchive(string fileName)
{
_log.DebugFormat("Deleting file on local path.");
File.Delete($"{_config.LocalPath}\\{fileName}");
if (!_session.Opened)
{
_log.DebugFormat("Session is closed -> Open it.");
this.OpenSession();
}
_log.DebugFormat("Move file.");
_session.MoveFile($"{fileName}", "Archive/" + fileName);
if (_session.FileExists(fileName))
{
_log.Error("File hasn't be moved");
}
}
private void OpenSession()
{
// Configurer les options de session
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = _config.FtpUrl,
UserName = _config.FtpLogin,
Password = _config.FtpPwd,
SshHostKeyFingerprint = _config.SshHostKeyFingerprint,
};
sessionOptions.AddRawSettings("ProxyPort", "0");
_session = new Session();
// Connecter
_session.Open(sessionOptions);
}
Я ожидаю, что файл будет перемещен или, по крайней мере, процесс выдаст исключение.
Кто-нибудь знает, что я делаю не так?
Я могу попробовать проверить наличие файла в месте назначения, прежде чем переместить его, но в моем случае я был бы очень удивлен, если бы это было причиной. Потому что я проверил вручную после ошибки, и файл существовал только в исходном пути.
Для openSession я не отправил вам весь код, но я вызываю этот метод в своем конструкторе (использовался только один раз в моем веб-задании) или когда я проверяю, что сеанс закрыт в моем методе перемещения (я добавил эту часть для проверки состояния соединения, когда я увидел, что подвижная часть не работает).
И, конечно, у меня есть метод dispose, вызываемый, когда я выполнил весь процесс:
public void DisposeSession()
{
if (this._session.Opened)
{
this._session.Close();
}
this._session.Dispose();
}
Вот лог:
. 2019-06-05 15:21:21.420 Listing file "FILETOMOVE_20190524_010139.json".
> 2019-06-05 15:21:21.420 Type: SSH_FXP_LSTAT, Size: 44, Number: 5639
< 2019-06-05 15:21:21.420 Type: SSH_FXP_STATUS, Size: 26, Number: 5380
. 2019-06-05 15:21:21.420 Discarding reserved response
< 2019-06-05 15:21:21.420 Type: SSH_FXP_ATTRS, Size: 54, Number: 5639
. 2019-06-05 15:21:21.420 FILETOMOVE_20190524_010139.json;-;1203;2019-05-23T23:01:40.000Z;3;"root" [0];"root" [0];rwxrwxrwx;1
< 2019-06-05 15:21:21.420 Script: -rwxrwxrwx 0 root root 1203 May 23 23:01:40 2019 FILETOMOVE_20190524_010139.json
> 2019-06-05 15:21:21.482 Script: stat -- "Archive/FILETOMOVE_20190524_010139.json"
. 2019-06-05 15:21:21.482 Listing file "Archive/FILETOMOVE_20190524_010139.json".
> 2019-06-05 15:21:21.482 Type: SSH_FXP_LSTAT, Size: 52, Number: 5895
< 2019-06-05 15:21:21.482 Type: SSH_FXP_ATTRS, Size: 54, Number: 5895
. 2019-06-05 15:21:21.482 FILETOMOVE_20190524_010139.json;-;1203;2019-05-23T23:01:40.000Z;3;"root" [0];"root" [0];rwxrwxrwx;1
< 2019-06-05 15:21:21.482 Script: -rwxrwxrwx 0 root root 1203 May 23 23:01:40 2019 FILETOMOVE_20190524_010139.json
> 2019-06-05 15:21:21.561 Script: mv "FILETOMOVE_20190524_010139.json" "Archive/FILETOMOVE_20190524_010139.json"
. 2019-06-05 15:21:21.561 Listing file "FILETOMOVE_20190524_010139.json".
> 2019-06-05 15:21:21.561 Type: SSH_FXP_LSTAT, Size: 44, Number: 6151
< 2019-06-05 15:21:21.577 Type: SSH_FXP_ATTRS, Size: 54, Number: 6151
. 2019-06-05 15:21:21.577 FILETOMOVE_20190524_010139.json;-;1203;2019-05-23T23:01:40.000Z;3;"root" [0];"root" [0];rwxrwxrwx;1
. 2019-06-05 15:21:21.577 Moving file "FILETOMOVE_20190524_010139.json" to "Archive/FILETOMOVE_20190524_010139.json".
> 2019-06-05 15:21:21.577 Type: SSH_FXP_RENAME, Size: 87, Number: 6418
< 2019-06-05 15:21:21.577 Type: SSH_FXP_STATUS, Size: 26, Number: 6418
< 2019-06-05 15:21:21.577 Status code: 0
< 2019-06-05 15:21:21.577 Script: FILETOMOVE_20190524_010139.json
> 2019-06-05 15:21:21.624 Script: stat -- "FILETOMOVE_20190524_010139.json"
. 2019-06-05 15:21:21.624 Listing file "FILETOMOVE_20190524_010139.json".
> 2019-06-05 15:21:21.624 Type: SSH_FXP_LSTAT, Size: 44, Number: 6663
< 2019-06-05 15:21:21.624 Type: SSH_FXP_ATTRS, Size: 54, Number: 6663
. 2019-06-05 15:21:21.624 FILETOMOVE_20190524_010139.json;-;1203;2019-05-23T23:01:40.000Z;3;"root" [0];"root" [0];rwxrwxrwx;1
< 2019-06-05 15:21:21.624 Script: -rwxrwxrwx 0 root root 1203 May 23 23:01:40 2019 FILETOMOVE_20190524_010139.json
Помогает ли?