В скрипте ТС подключаюсь по https. "Соединение не установлено" т к сертификат не принят. В браузере это побороть можно - просто ввожу в список сертификатов мой и никаких окошек с предупреждениями нет больше, заходит без ращговоров. Как это сделать в ТС?
Нравится
Здравствуйте.
Подключение клиентского приложения Террасофт по TSP\IP с использованием SSL не реализовывалось. Есть возможность подключения с использованием сертификатов через web-сервисы (настройка описана в руководстве администратора, также рекомендации есть по ссылке: http://www.community.terrasoft.ru/blogs/5138).
С уважением, Terrasoft Support Team.
Анна, быть может вы имеете в виду обращение по https к стороннему веб-методу? Если да - то какой объект вы используете для его вызова?
Для объектов типа MSXML2.XMLHTTP - сертификат необходимо установить в IE. Если используется самоподписанный сертификат, то можно подавить ошибки с предупреждением, Google говорит - для этого перед вызовом веб-метода добавить строку
xmlHttpRequest.setOption(2) = 13056
Из ТС в биллинг отправляется инормация. Делается так:
function createRequestObject() { var request = null; try { request=new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e){ } if(!request) try { request=new ActiveXObject('Microsoft.XMLHTTP'); } catch (e){ } if(!request) try { request=new XMLHttpRequest(); } catch (e){ } return request; }
Пока делали в тестовом режиме, админ биллинга проверку сертификатов отключил, все работало.
В IE сертификат ставила как доверенный и в IE сразу идет запрос логин/пароля без проверки. Этого мало, в ТС запрашивает.
Попробую setOption(2), отпишусь.
Спс)
//var objXMLDocument; request = new ActiveXObject( "Msxml2.ServerXMLHTTP.6.0"); //objXMLDocument = new ActiveXObject("Msxml2.DOMDocument.6.0"); request.open ('POST', url, true, LogInAbb, password); request.send (data); while (request.readyState != 4) { request.waitForResponse(1000); } if(request.readyState == 4) { if (request.status == 200) { ... }else if(request.status == 500) { System.MessageDialog('Проверьте корректность введенных данных.', mdtWarning, mdbOK, 0); return 0; }else { var showmessage = 'Ошибка подключения. Проверьте настройки подключения.'; return 0; }
В результате: request.status = 401
Что не так?
Если запускаю клиент ТС на Windows Server 2008 32 - работает
Если на Windows Server 2008 64 или Windows 7 - ошибка 401
Воспользуйтесь отладчиком типа Fiddler и сравните результат в случае использования на обеих ОС.
Воспользуйтесь отладчиком типа Fiddler и сравните результат в случае использования на обеих ОС.
"Гакало Игорь Александрович" написал:Воспользуйтесь отладчиком типа Fiddler и сравните результат в случае использования на обеих ОС.
А как именно им воспользоваться? Я ввожу строку подключения на своем серваке и на сервере клиента. У меня удачно подключается, у клиента ошибка 401. А как более точно посмотреть, в чем причина ошибки, не подскажете?
Анна, хорошее описание по работе с Fiddler можно найти здесь:
http://www.cyberguru.ru/dotnet/asp-net/http-fails-page2.html
http://softive.ru/2009/03/05/fiddler/