AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.10.2009, 12:49   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
FTP в AX4
Всем привет! Посмотрел тут на тему FTP в АХ5 и захотел сделать по аналогии в 4-ке выкладку файла на FTP.
Но... не тут-то было.
Код
X++:
        stream = ftp.GetRequestStream();
        stream.Write(e.GetBytes("12\n"), 0, 3 );
отказался компилироваться на второй строке, а обход через класс Object привел к "вылетанию" на первой строке при запуске кода.
Ссылка http://erpkb.com/Axapta/KakPoslat'FajjlPoFtp указывает на работу через DLL, как и предложение работы через DLL и модифицированный класс WinInet. А нельзя ли решить эту задачу через .NET? В рамках тесной интеграции AX и .NET ?
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 05.10.2009 в 12:55.
Старый 05.10.2009, 13:12   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А через CLRObject?
Старый 05.10.2009, 13:21   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
А через CLRObject?
Эммм... а поподробнее? Для тех кто в танке и не знает что это такое
__________________
Возможно сделать все. Вопрос времени
Старый 05.10.2009, 13:40   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Эммм... а поподробнее? Для тех кто в танке и не знает что это такое
\Classes\AifUtil\saveBase64ToFile
\Classes\AifUtil\saveTextToFile
За это сообщение автора поблагодарили: sukhanchik (4).
Старый 05.10.2009, 13:47   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Ааа.. ооо.. вон оно как... Попробую, отпишусь.
__________________
Возможно сделать все. Вопрос времени
Старый 05.10.2009, 15:26   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Пример с DLL, который работает в AX2009:
Class_MMEFtpConnection.xpo
Старый 05.10.2009, 17:22   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А при связи с FTP нужны какие-нибудь разрешения (Permission) ? (Хотя и их отключал - не помогало )
Не могу врубиться - почему все-таки код может вылетать без каких-либо сообщений при попытке подключения.
Код запускаю из джоба, т.е. на клиенте. Через проводник спокойно достукиваюсь... В общем все дело идет к тому - что нужно отлаживать в Visual Studio ...
Код упрощен из закачки (upload) файла до его чтения.
X++:
    System.Net.FtpWebRequest       request;
    System.Net.FtpWebResponse     response;
    System.Net.NetworkCredential    credential;
    Object                                       ftpo;

    ftpo    = System.Net.WebRequest::Create("ftp://ftp.asus.com/pub/ASUS/Readme.txt");
    request = ftpo;

    credential = new System.Net.NetworkCredential("anonymous","xx");
    request.set_Credentials(credential);
    request.set_Method("RETR");
    response = request.GetResponse(); // Тут вылет. Отлавливается try/catch
    if (response)
        info(response.get_StatusDescription());
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 05.10.2009 в 17:25.
Старый 06.10.2009, 12:21   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Обычно если валится без объяснений - то это какое-то несоответствие сигнатур дотнетных методов и аксаптовских

А аналогичный .NET код работает?

Разрешения нужны для серверного кода только => из джоба не надо запрашивать
За это сообщение автора поблагодарили: sukhanchik (4).
Старый 06.10.2009, 14:36   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Дык вот как раз и интересно - валится код что через DLL, что через .NET. Скорее всего проблема не в АХ и не в .NET. До Visual Studio пока не добрался - но очень на него надеюсь - т.к. там возможно будет выдано более подробное описание проблемы.
__________________
Возможно сделать все. Вопрос времени
Старый 07.10.2009, 07:31   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Я бы посоветовал обработать catch и посмотреть, что в нем приходит
X++:
System.Exception                exception;
...
    try
    {
        response = request.GetResponse(); // Тут вылет. Отлавливается try/catch
        if (response)
            info(response.get_StatusDescription());
    }
    catch
    {
        exception = CLRInterop::getLastException();
        if (exception)
        {
            error(exception.get_Message());
            exception = exception.GetBaseException();
            error(exception.get_Message());
        }
    }
PS. а в студии подобный код у меня отработал на ура

PPS. проверил в DAX2009 - отрабатывает без ошибки, файл закачивается.
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 07.10.2009 в 09:31.
За это сообщение автора поблагодарили: sukhanchik (10).
Старый 07.10.2009, 09:21   #11  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Ух ты.... вот действительно чего мне не хватало - так это подробного описания ошибки..
Класс!
Получил у себя:

Цитата:
Error Сообщение (09:15:35) Адресат вызова создал исключение.
Error Сообщение (09:15:35) Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника.
Осталось понять что значит "требуется проверка подлинности"...
__________________
Возможно сделать все. Вопрос времени
Старый 07.10.2009, 09:45   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
А вы через прокси работаете?
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: sukhanchik (9).
Старый 07.10.2009, 12:11   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от AndyD Посмотреть сообщение
А вы через прокси работаете?
Блин! Гениально! Супер! Все работает! Совершенно забыл про настройки прокси на закладке Подключения в IE.
__________________
Возможно сделать все. Вопрос времени
Старый 07.10.2009, 12:25   #14  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Блин! Гениально! Супер! Все работает! Совершенно забыл про настройки прокси на закладке Подключения в IE.
Зачем репутацией-то так раскидываться, не дали человеку заветной 1000-ю насладиться
Старый 07.10.2009, 12:52   #15  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Зато будет радость насладиться репутацией в 1010. Просто когда чувствуется помощь "в точку" - и репутации не жалко
__________________
Возможно сделать все. Вопрос времени
Теги
ax2009, ax4.0, ftp, безопасность, законченный пример

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
работа по FTP mit DAX: Программирование 9 19.09.2014 10:05
msdynamicsax: FTP-client within Ax Blog bot DAX Blogs 0 08.04.2009 01:06
AX UK: Guide to the AX4 SP1 Demo Data Blog bot DAX Blogs 0 09.10.2007 16:40
gl00mie: AX4 SysFileDeployment Fix Blog bot DAX Blogs 0 10.07.2007 16:20
Установка AX4 на Oracle listener DAX: Администрирование 2 02.03.2007 19:39

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:30.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.