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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2008, 18:02   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Закачка файлов из интернета через proxy в 4.0
Поднимая известную модификацию закачек курсов валют из интернета столкнулся с интерестной ошибкой. Если для доступа в интернет используется прокси сервер(указывается в параметрах IE), то при обращении к сайту выдается следующая ошибка
System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.

Обращение просто через браузер проходит нормально.
Как я понимаю для NET где-то должно настраиваться, логин-пароль с которыми подключаться к интернету, но где? может кто решал подобные проблемы?

Небольшой джоб для иллюстрации описанного случая:

X++:
static void TRUD_readInternet(Args _args)
{
    XMLDocument         ratesDoc = new XMLDocument() ;
    str url;
    ;
    URL =   "http://www.cbr.ru/scripts/XML_dynamic.asp?" +
            "date_req1=" + Date2Str(1\01\2008, 123, 2, 4, 2, 4, 4) + "&" +
            "date_req2=" + Date2Str(12\01\2008, 123, 2, 4, 2, 4, 4) + "&" +
            "VAL_NM_RQ=" + "R01235";
    
    if (RatesDoc.load(url))
    {
        info("ok");
    }
    else
    {
         throw error(RatesDoc.parseError().toString());
    }
}
Старый 18.02.2008, 19:08   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от trud Посмотреть сообщение
Если для доступа в интернет используется прокси сервер(указывается в параметрах IE), то при обращении к сайту выдается следующая ошибка
System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
Как я понимаю для NET где-то должно настраиваться, логин-пароль с которыми подключаться к интернету, но где?
Вроде там все немного сложнее, чем просто настройка логина с паролем, - см. класс System.Net.AuthenticationManager, там есть пример.
Цитата:
Сообщение от trud Посмотреть сообщение
Обращение просто через браузер проходит нормально.
Не все так просто... Во-первых, надо выяснить все-таки, какие способы аутентификации поддерживает proxy (точнее, поддержка каких способов аутентификации включена на proxy). Во-вторых, надо помнить, что "обращение через браузер" или через job происходит в SecurityContext пользователя, запустившего браузер или клиента Axapta, а попытка выхода через proxy с сервера происходит от имени того пользователя, под которым запущен AOS. Это важно, если на proxy используется Windows-аутентификация. Кроме того, MSIE, к примеру, сам поддерживает такую аутентификацию, поэтому аутентификация при "обращении через браузер" в его случае происходит прозрачно для пользователя. К слову, была похожая тема
Proxy Authentication Required

Последний раз редактировалось gl00mie; 18.02.2008 в 19:13.
Старый 18.02.2008, 20:00   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
В данном случае запрос вроде как проходит от клиента, это же джоб.
В общем все удалось решить довольно просто без перенастройки ISA и прочих мудростей, правда не системно.
Объявился объект типа COM
X++:
Object              docCOM = new COM('Microsoft.Xmldom');
С помощью него читается файл из интернета, и этот XML передается классу XMLDocument. Т.е. решение которое собственно работало в 3.0 безо всяких NET заморочек.
В процессе поиска выяснилось, что
Ошибка 407 - это вроде как новая фишка в NET 2.0. Идея в том, чтобы первоначально не посылать никаких данных пользователя, приложение вначале должно просто пробовать соединиться, если в ответ возвращается 407, то надо подставить текущие данные пользователя, если и это не проходит, то уже запрашивать логин-пароль.
Правда как с этим работать в Аксапте не очень то понятно, буду рад любым советам
За это сообщение автора поблагодарили: someOne (1), Logger (3).
Старый 19.10.2009, 11:05   #4  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
точно такая же проблема с курсами (Ax 4.0). у нас выход в инет через прокси. на клиенте есть доступ в интернет и даже под тем логином под которым запущен AOS.
пробовал через
'Microsoft.Xmldom' вобще не создался.
Есть какой-то простой способ заставить аксапту зайти в интернет через прокси?
Старый 18.12.2013, 18:16   #5  
Umka is offline
Umka
MCTS
Аватар для Umka
Самостоятельные клиенты AX
MCBMSS
 
4 / 14 (1) ++
Регистрация: 25.12.2006
Адрес: Москва
System.Net.WebClient webClient;
System.String data;
System.Net.WebProxy proxy;
System.Net.NetworkCredential credential;
Str strData;
XMLDocument doc;
;
URL = "
http://www.cbr.ru/scripts/XML_val.asp?d=0";
webClient = new System.Net.WebClient();
proxy = new System.Net.WebProxy('адрес прокси', порт);
credential = new System.Net.NetworkCredential("логин", "пароль");
proxy.set_Credentials(credential);
webClient.set_Proxy(proxy);
strData = webClient.DownloadString(URL);
webClient.Dispose();
doc = xmlDocument::newXml(strData);
За это сообщение автора поблагодарили: trud (1), Logger (3).
Теги
ax4.0, proxy

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Построчный импорт из Excel через COM olesh DAX: Программирование 20 23.10.2008 14:01
Как контролировать названия имён файлов созданных с помощью COMExcelDocument_RU miklenew DAX: Программирование 6 25.11.2007 15:50
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
Закачка курсов валют с Интернета. Hans DAX: Программирование 1 22.09.2006 12:08
Запуск программы из Аксапты через 2-хзвенку Migel_84 DAX: Программирование 25 27.04.2006 09:41

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:18.