![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
Доброго времени суток всем.
Имеется принтер у которого поднят FTP. При попытки получить поток "Stream strm = reqFTP.GetRequestStream();" выскакивает ошибка: The remote server returned an error: (550) File unavailable (e.g., file not found, no access) Код следующий использую:
Здесь http://www.rsdn.ru/Forum/?mid=2227639 пишут, что нужно разрешить CWD на стороне сервака, но в опциях принтера такого нету. Как быть народ? P.S. через тотал и ком строку все пашет нормально Это сообщение отредактировал(а) CYBERDREAM - 12.11.2007, 11:52 -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 6 Всего: 170 |
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
За ссылочку спасибо.
Логинится без проблем. ПОменять директорию тоже. Но вот команду "PASV" не понимает и из командной строки тоже. Качал как то фтп клиент написанный на шарпе, та же беда. Но по идее пасивный режим не нужен, ибо мог прочитать все каталоге только в такой комбинации
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
Вышеописанным макаром пока что не получилось осилить ФТП. Он работает в активном режиме, и комманду PASV не понимает. При наличии времени все таки надо осилить через этот класс, красивое решение. А на данный момент решил проблему с помощью библиотечки editFTP, в одной из тем по ФТП ее предлагали, но тогда я не увидел что можно менять ConnectionMode на ACTIVE.
Спасибо tol05 за ссылочку. ![]() -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
CYBERDREAM, а почему не через сокеты делаешь??
имхо лучше на уровне пониже - там можно явно послать байты...и никаких проблем не будет - сервер явно все поймет.. |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
0000 я только за, но увы не смог еще.
Меня как раз этот вариант идеально устраивает. Проблема в том, что сервер работает не в пассивном, а в активном режиме. Но ни команду ACTIVE ни PASV он не понимает, в этом то и загвоздка на данный момент. Через ком. строку эти команды так же воспринимаются как непонятные. ![]() Думаю эту проблему решить можно, но пока еще не знаю как -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
через сокеты имхо проще, потому что лишних операций нет - подсоединился, послал запрос, обработал полученный ответ...все..чистая клиент-сервер...
reqFTP.UsePassive = true; http://msdn2.microsoft.com/en-us/library/s...usepassive.aspx помимо этого есть UseBinary, если понадобится бинарные файлы кидать http://msdn2.microsoft.com/en-us/library/s....usebinary.aspx кстати вот еще 2 интересные статейки про пассивный режим работы FTP и сравнение его с активным.... http://slacksite.com/other/ftp.html#passive http://www.ncftp.com/ncftpd/doc/misc/ftp_a...PASVNATProblems Это сообщение отредактировал(а) 0000 - 14.11.2007, 10:40 |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
В первом посте я указывал бинарный и активный режим. ПРоблема была в том, что он дирректорию не находил, как выяснилось это из-за того, что нужно слать команду CWD. В случае с сокетами именно так и выходит, но как правильно послать команду режима работы не пойму. Может специфика фтп сервака... Еще ньюанс пишу под фрэйм 1.1 на данный момент.
Добавлено через 5 минут и 44 секунды Ну а сокеты конечно рулят ![]() -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
так не понял..ты PASV включить не можешь на сервере или ему директорию сменить?
|
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
Неуверен, что PASV можно включить на серваке, думаю в принтере все забито без возможностей изменений.
Сменить директорию чему? -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
вот тут с проксями и пассивным режимом можно еще поиграться....у меня и без них работает - на эмуляторе shhtps Это сообщение отредактировал(а) 0000 - 14.11.2007, 11:13 |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
Увы та же история. Думаю это из-за жестких ограничений прав.
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
так...если не может вернуть поток, значит он может их не поддерживать..тут уже смотреть надо на сам сервер...а то может вообще зря пытаешься...
слушай..а ты хочешь, чтобы этот файл распечатался???.. по умолчанию файлы передаются в ASCII и не для печати..тебе надо явно тогда передать ему команду TYPE если не поможет дай ему команду MODE S - посмотрим что вернет..эта команда переводит сервер в потоковый режим для передачи данных как поток байтов.. щас набросаю код с сокетами, проверим... я просто не знаю как эти команды передать через FtpWebRequest Это сообщение отредактировал(а) 0000 - 14.11.2007, 11:51 |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
че-то коротенько не получилось, куча методов дополнительных вылезла по соединению и открыванию сокетов...
учти, что в этом примере я их нигде не закрывал - все убрал, так что надо будет - закроешь сам потом
|
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
Мне именно в бинэри нужно передавать, иначе принтер не поймет, и использовать именно активный режим, а не пассивный. Указанный пример как то решает проблему с тем, чтобы разрешить пассивный режим? или это как пример просто?
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
этот пример явно говорит серверу включить пассивный режим командой PASV...
если тебе нужен именно активный, чтобы клиент принимал соединение, то вместо команды PASV надо использовать команду PORT h1,h2,h3,h4,p1,p2, где IP адрес = h1.h2.h3.h4 и номер порта = (p1*256+p2), с которыми сервер должен устанавливать соединение для передачи данных. но тут может быть еще куча тонкостей...например сервер может не дать установить активное соединение и принудительно ставить пассивное... а передача бинарников - измени "TYPE A" на "TYPE I" |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
CYBERDREAM, поставил вопрос решен..как решил-то, что получилось? отпишись, плз! =)
|
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
0000 спасибо огромное за помощь, но заняться через 2 часика только смогу им. На спех проверил предложенные тобою код, выдло сообщение ошибку в данном моменте:
тобишь длина строки меньше 3, и вроде даже равна нулю, увы сейчас чуть заморочен другим делом, но как сказал через 2 часика займусь этим благим делом -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: 1 Всего: 5 |
связь с сервером....то есть ни одна команда не прошла??даже соединение?
|
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
насколько я помню - нет, скоро дам точный ответ
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
Много воды конечно утекло, но теперь могу полностью заняться этим вопросом. Пишу на фрейме 1.1, поэтому Generic не катят тут, плюс многие отличия от второго. Реально на 1.1 это написать?
Это сообщение отредактировал(а) CYBERDREAM - 10.12.2007, 13:24 -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: нет Всего: 28 |
А под 2.0 до передачи файла все ок
![]()
Залить можно лишь в определенную папку. Елси посылаю комманду cd dest/d1prn то выдает 500 'cd': command not understood -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |