
Это начало происходить совсем недавно — не могу понять, почему.
Я использую FileZilla (последнюю версию) для передачи файлов по FTP на сервер Windows 2008 R2 на IIS7.5.
Каждый 10-й (но не всегда каждый 10-й) файл иногда не может завершить загрузку (без сообщения об ошибке), поэтому пробуем снова. При второй попытке файл не может быть загружен и получаю эту ошибку:
Response: 550 The process cannot access the file because it is being used by another process.
Error: Critical file transfer error
В этом нет никакой закономерности... и нет объяснения. Единственный способ обойти это — перезапустить службу FTP на сервере — именно служба FTP блокирует файл.
Пара вещей:
- Это происходит не из-за размера файла, а независимо от того, 1 КБ файл или 1000!
- Если посмотреть на "текущие сеансы" на сервере, то там есть десятки сеансов, которые говорят "Текущая команда" STOR - FileZilla в настоящее время не подключена. Поэтому я предполагаю, что соединение прерывается во время передачи, но сервер думает, что он все еще загружает, поэтому оставляет свое собственное соединение открытым...
- Я отключил брандмауэр и антивирус, так что они не являются причиной.
- То же самое происходит с активным и пассивным
Есть идеи?
По сути, это та же самая проблема:Win 2008/FTP/Filezilla - Периодические критические ошибки передачи данных(нет ответов)
решение1
Я нашел ответ на этот вопрос — подумал, что стоит его опубликовать, так как это может помочь кому-то еще диагностировать ту же проблему.
Проблема была в AVG. По какой-то причине AVG убивал соединение для некоторых файлов (но не для всех), но уничтожение соединения между клиентом и сервером означало, что оба конца соединения думали, что оно все еще открыто - поэтому блокировали файлы.
решение2
Тот же симптом был выявлен в Windows Server 2008 R2, когда нарушения общего доступа возникали из-за literal size
команд, и был опубликован какКБ2723776
Команды возобновления файлов для реализации FTP были не слишком надежны в IIS 7.0 и все еще не идеальны в 7.5
Я подозреваю, что упомянутое выше исправление устраняет не только конкретную проблему с literal size
командами.