Показать сообщение отдельно
Старый 14.12.2010, 13:36   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Возможно, winInet.internetOpenUrl можно настроить на работу на сервере, но нам это не удалось.
Возможно, причина в том, что есть различное поведение функции InternetOpen() в WindowsXP и в серверных виндах.
При вызове ее на сервере требуется, при отсутствии прокси, передавать не пустую строку, а null, в качестве имени прокси-сервера

В class declaration добавил
X++:
    DLLFunction _internetOpenProxy;
Переделал метод new(str _proxy='', str _bypassProxy='')
X++:
...
    _internetOpen = new DLLFunction(_winInet,'InternetOpenA');
    _internetOpen.returns(ExtTypes::DWORD);
    _internetOpen.arg(ExtTypes::STRING);
    _internetOpen.arg(ExtTypes::DWORD);
    _internetOpen.arg(ExtTypes::DWORD);
    _internetOpen.arg(ExtTypes::DWORD);
    _internetOpen.arg(ExtTypes::DWORD);

    _internetOpenProxy = new DLLFunction(_winInet,'InternetOpenA');
    _internetOpenProxy.returns(ExtTypes::DWORD);
    _internetOpenProxy.arg(ExtTypes::STRING);
    _internetOpenProxy.arg(ExtTypes::DWORD);
    _internetOpenProxy.arg(ExtTypes::STRING);
    _internetOpenProxy.arg(ExtTypes::STRING);
    _internetOpenProxy.arg(ExtTypes::DWORD);
...
   _handle = this.internetOpen('Axapta',0,_proxy,_bypassProxy,0);
и метод internetOpen()
X++:
int internetOpen(str 255 agent,int accessType,str 255 proxyName,str 255 proxyByPass,int flags)
{
    ;
    if (!proxyName)
        return _internetOpen.call(agent,accessType,0,0,flags);
    else
        return _internetOpenProxy.call(agent,accessType,proxyName,proxyByPass,flags);
}
__________________
Axapta v.3.0 sp5 kr2