Цитата:
Сообщение от
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);
}