Например, читаем содержимое пустого ftp каталога, получаем «всегда два файла: «ready» и «connection». Содержимое этих файлов одинаковое:
220 Eserv/2.99 FTP ready
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
Ещё пример, записываем данные в ftp каталог, никаких ошибок, но реально запись не происходит. Причём ftp сервер с таким именем может вовсе не существовать. Такие соединения в логе для ftp не отображаются.
Само собой, если выйти в Интернет не через "Eserv", методы «1С» прекрасно работают.
Ответ, как обычно, в логах Eserv. Они проблему раскрывают лучше любого хрустального шара.
Значит до Eserv'а дело и не доходит. В этом "методе 1С" каким образом указывается имя FTP-сервера (для записи в FTP каталог) и прокси?
PUT ftp://jesuslovesyou.ru:21/1/goods.txt HTTP/1.1 ?
Но тогда возникают самый главный вопрос: получается, что настроить такой обмен через «Eserv 2.99» не получится, это касается только его или остальных прокси?
Файл: LOG FTP 1С [13172 bytes]
Если флагЧерезПрокси Тогда
Прокси = Новый ИнтернетПрокси();
Прокси.Пароль = Пароль;
Прокси.Пользователь = Пользователь;
Прокси.Установить(«ftp», «10.0.0.81», 3121);
Иначе
Прокси = Неопределенно;
КонецЕсли; и когда используем «Eserv», передаём объект «ИнтернетПрокси» в метод соединения, а когда прокси не используем просто пустое значение.
FTP = Новый FTPСоединение(«jesuslovesyou.ru»,21 , «stepanov@jesuslovesyou.ru», ФТПСервер_Пароль, Прокси, ФТППассивноеСоединение);
А, Семён Семёныч! Его же можно попробовать обмануть! Обращаемся как бы напрямую, но хост указываем — Eserv, порт — 3121, пользователь — stepanov@jesuslovesyou.ru@jesuslovesyou.ru, пароль без изменений.
Учтите, что Eserv/2 понимает пассивный режим только на стороне клиента, с целевым сервером он как клиент работает всегда в активном режиме. Если только не было переделок в последних сборках.
Пассивное соединение здесь не использую, хотя в программе для обмена по ftp такой флаг устанавливал, всё работало.
Кстати, если после установки порта прокси 3121, спросить Прокси.Порт(«ftp»), то «1С» ответит, «3121», а вот если Прокси.Порт(), то вот тогда «3128»..
Пароль и пользователя Прокси пробовал не указывать, результат тот же.
На всякий случай, вот описание объекта «Интернет прокси»:
Свойства:
НеИспользоватьПроксиДляАдресов
(Тип: Массив. Список адресов, соединение с которыми осуществляется без использования прокси.)
НеИспользоватьПроксиДляЛокальныхАдресов
(Тип: Булево. Если установлено в Истина, то при запросе ресурсов с локальных адресов прокси не используется.)
Пароль
Пользователь
Методы:
Порт(<Протокол>)
Сервер(<Протокол>)
Установить(<Протокол>, <Сервер>, <Порт>)
Описывает параметры прокси-серверов для различных протоколов. Допустимые протоколы для использования в объекте ИнтернетПрокси задаются строками http, https и ftp. Позволяет использовать аутентификацию по имени пользователя и паролю или NTLM (Integrated Security) аутентификацию (в версии 1С:Предприятия под Windows).
NTLM аутентификация используется по умолчанию для прокси-серверов, поддерживающих данный способ аутентификации, и не требует дополнительных настроек, т.е. NTLM аутентификация будет использоваться, если в конструкторе объекта HTTPСоединение прокси не задан или задан, но без указания имени пользователя и пароля. Задание в конструкторе объекта HTTPСоединение прокси с указанным именем пользователя и паролем отключает NTLM аутентификацию, для аутентификации в этом случае используется HTTP Basic аутентификация.
ред: 21.04.2010 13:57
Покажите логи FTP про попытку обмана. Напрямую-то она должна бы по честному FTP работать.
Попробовал ввести адрес «ftp://jesuslovesyou.ru/» в Internet Explorer 6.0., сначала получил предупреждение о том, что папка доступна только для чтения, т.к. настройка прокси сервера запрещает полный доступ, а в основном окне получил:
220 Eserv/2.99 FTP ready
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
Если оставить настройку ftp в Internet Explorer 6.0 на порт 3128, в основном получим:
FTP error:
530 Login incorrect.
Generated by Eserv/2.99
Такая же ошибка в «1С» записывается в псевдо-файл «error», когда выставляем порт 3128.
Очень интересны Ваши комментарии на этот счет.
Иначе прокси пытается залогиниться анонимусом. Впрочем, вам это всё равно не поможет, поскольку режим этот readonly. Большая удача, что получилось обмануть.
Оно так и должно быть, все браузеры так работают.