Ошибка при вызове метода контекста (send): Отказано в доступе
Ошибка произошла при использовании сервиса геокодирования Яндекса (в рамках задачи получения ближайших станций метро по адресу)
Быстрый переход
- Полный текст
- Анализ вариантов
- Решение:
- Пример кода
Полный текст
Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Отказано в доступе
Анализ вариантов
1. Найденное на просторах интернета решение добавить «www.» в строку, привело к другой ошибке (отсутствию ресурса, да и как выяснилось там Ошибка происходила на Open).
2. Изменился адрес или формат запроса.
Зайдя на страницу описания сервиса, в глаза бросилось, что Яндекс перешел https. (На этапе проверки в браузере, не обратил внимание на redirect c http).
Решение:
Перешел к уже отлаженному на https «Winhttp», возможно свойства Option применимы и XMLHTTP, т.к. остальные, используемые методы и свойства, совместимы.
Пример кода
XMLHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); XMLHttp.Option(2,"UTF-8"); XMLHttp.Option(4, 13056); //intSslErrorIgnoreFlags Попытка XMLHttp.Open("GET", Запрос, Ложь,login,Password); Исключение Ошибка = ОписаниеОшибки(); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Ошибочный OPEN "+Ошибка+"("+Запрос+")"; Сообщение.Сообщить(); Возврат Ложь; КонецПопытки; //Отправка запроса Попытка XMLHttp.Send(); Исключение КонецПопытки;
Клиент получает ту рекламу, которую он заслуживает!
08.09.16 — 12:00
Подскажите пожалуйста как избавиться от этой ошибки:
//
УРЛ = «ссылка» + СокрЛП(ЭлементыФормы.url.Значение);
ХМЛХТТП = ПолучитьCOMОбъект(«», «Microsoft.XMLHTTP»);
ХМЛХТТП.Open(«GET», УРЛ, Ложь);
ХМЛХТТП.Send(Null);
Пока ХМЛХТТП.Status <> 200 Цикл
Состояние(«Ждем…»);
КонецЦикла;
//ТегНачалоРезультата = «<parents>»;
//ТегКонецРезультата = «</parents>»;
//ТегНачалоРезультата2 = «<id>»;
//ТегКонецРезультата2 = «</id>»;
//ТегНачалоПоля = «<» + ТегПоляНаСайте + «>»;
//ТегКонецПоля = «</» + ТегПоляНаСайте + «>»;
ТекстОтвета = ХМЛХТТП.ResponseText;
//
{Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (send)
ХМЛХТТП.Send(Null);
по причине:
Произошла исключительная ситуация (msxml3.dll): Указанный протокол неизвестен.
1 — 08.09.16 — 12:04
Аналог null в 1С это неопределено
2 — 08.09.16 — 12:05
(1) Аналог, да не аналог и не везде
3 — 08.09.16 — 12:06
(2) В ВК кстати Null
4 — 08.09.16 — 12:13
работает на других функциях с null
я решил проверить обработкой, выдает ошибку
на метод send, что нужно исправить?
5 — 08.09.16 — 12:16
(0)
https://msdn.microsoft.com/ru-ru/library/ms536736.aspx
send method
Sends an HTTP request to the server and receives a response.
Syntax
XMLHttpRequest.send(varBody);
Parameters
varBody [in, optional]
Type: any
Any that specifies the body of the message being sent with the request.
Value Meaning
ArrayBuffer
A binary data. See FileReader.readAsArrayBuffer.
blob
A Blob (binary data object).
Document
A documentnode.
ArrayBufferView
A typed array view of an ArrayBuffer.
string
A DOMString.
FormData
A FormData object
Как видим, NULL там нет
6 — 08.09.16 — 12:17
(1) если ставить неопределено за место null таже ошибка
7 — 08.09.16 — 12:17
+(5) Но, поскольку varBody optional, то,
ХМЛХТТП.Send();
8 — 08.09.16 — 12:17
(0) а что там должно быть?
9 — 08.09.16 — 12:18
(6) Не ставьте вообще ничего
10 — 08.09.16 — 12:18
(9) попробую
11 — 08.09.16 — 12:21
(9) ругается
{Форма.Форма.Форма(8)}: Ошибка при вызове метода контекста (send)
ХМЛХТТП.Send();
по причине:
Произошла исключительная ситуация (msxml3.dll): Указанный протокол неизвестен.
12 — 08.09.16 — 12:21
что то не так!!!
13 — 08.09.16 — 12:22
(12) Пустую строку
14 — 08.09.16 — 12:22
(11) Так это не потому.
Вы в УРЛ пихаете что?
УРЛ = «ссылка» + СокрЛП(ЭлементыФормы.url.Значение);
15 — 08.09.16 — 12:22
16 — 08.09.16 — 12:23
+(14) Любой браузер ругнется на такой урл
17 — 08.09.16 — 12:27
(16) то что я ложу в УРЛ пробовал в браузере он возвращает номер, то есть работает
18 — 08.09.16 — 12:32
брал с отладчика с табло, вставлял в строку браузера
19 — 08.09.16 — 12:34
(17) НЕ ВЕРЮ (с)
20 — 08.09.16 — 12:35
(18) значение УРЛ в студию.
21 — 08.09.16 — 12:35
(18) А там по аналогии с 1С
xhr.open(‘POST’, ‘/server’, true);
а в Send ресурсы
22 — 08.09.16 — 12:37
23 — 08.09.16 — 12:38
24 — 08.09.16 — 12:39
А попробуй
ХМЛХТТП.Open(«GET», «http://www.reestr35.ru/admin/offline_func.php»;, Ложь);
ХМЛХТТП.Send(«?act=add_redirect&url=http://ya.ru»;);
25 — 08.09.16 — 12:43
(22)
УРЛ = «http://www.reestr35.ru/admin/offline_func.php?act=add_redirect&url=http://ya.ru»;;
ХМЛХТТП = ПолучитьCOMОбъект(«», «Microsoft.XMLHTTP»);
ХМЛХТТП.Open(«GET», УРЛ, Ложь);
ХМЛХТТП.Send(Null);
Пока ХМЛХТТП.Status <> 200 Цикл
Состояние(«Ждем…»);
КонецЦикла;
ТекстОтвета = ХМЛХТТП.ResponseText;
У меня работает.
26 — 08.09.16 — 12:46
(25) почему у меня может быть ошибка?
27 — 08.09.16 — 12:54
(26) не подскажете? если все одинаково, то дело в сервере?
28 — 08.09.16 — 12:57
29 — 08.09.16 — 12:58
(28) попробовал на своем компе, тоже самое, ошибка
30 — 08.09.16 — 12:59
31 — 08.09.16 — 12:59
(28) все же не понимаю как мне устранить эту ошибку? (
32 — 08.09.16 — 13:00
(30) (24) в смысле?
33 — 08.09.16 — 13:01
(30) но вы говорите же что у вас выполняется все
34 — 08.09.16 — 13:07
врап=новый COMОбъект(«NetObjectToIDispatch45»);
HttpClient=Врап.ПолучитьТипИзСборки(«System.Net.Http.HttpClient»,»System.Net.Http.dll»);
handler = врап.СоздатьОбъект(«System.Net.Http.HttpClientHandler»);
DecompressionMethods= Врап.ПолучитьТип(«System.Net.DecompressionMethods»);
handler.AutomaticDecompression=Врап.OR(DecompressionMethods.GZip,DecompressionMethods.Deflate) ;
Клиент=Врап.СоздатьОбъект(HttpClient,handler);
УРЛ = «http://www.reestr35.ru/admin/offline_func.php?act=add_redirect&url=http://ya.ru»;;
Стр=Клиент.GetStringAsync(УРЛ).Result;
Сообщить(Стр);
//Клиент.Dispose();
Врап.ЗакрытьРесурс(Клиент);
Выдает
Your IP (хх.ххх.х.ххх) is not allowed.
35 — 08.09.16 — 13:09
(34) да если пробовать как в 24, тоже
36 — 08.09.16 — 13:12
(33) Это не я а 25
37 — 08.09.16 — 13:13
(32) Попробуй 15+30
38 — 08.09.16 — 14:14
(36) узнал что такое бывает на сервере иногда
то есть в иной период возможно сработает, как в (0)
39 — 08.09.16 — 14:22
(38) Побробуй 37 для успокоения души
40 — 08.09.16 — 14:23
38 при этом из браузера читает?
41 — 08.09.16 — 14:30
(39) пока меня выкинуло с сервера и не пускает (((( ожидаю когда наладится если
(24) вот это сработало у меня на компе, выдав результат Your IP (хх.ххх.х.ххх) is not allowed, так как там можно только с сервера, я хотел проверить это на сервере и меня выбросило
то есть при (24) ошибки той нет, и по коду идет дальше
(40) (0) + ссылка из (22) в браузере возвращает число на пустой странице, которое мне и нужно считать
42 — 08.09.16 — 14:39
(41) Значит у тебя проблема с библиотеками на сервере. Небось 64 разрядны. А почему HTTPСоединеие не используешь?
Почему 37 не хочешь попробовать?
43 — 08.09.16 — 14:57
прокси все ломает…
44 — 08.09.16 — 14:59
(42) Нет не с библиотеками.
45 — 08.09.16 — 15:01
(44) Возможно. Я таким анахронизмом давно не занимаюсь.
46 — 08.09.16 — 15:02
(41) У меня тоже именно это (Your IP (хх.ххх.х.ххх) is not allowed) и выдало.
О чем это говорит, что разрешен вход либо под определенным агентом с определенной подсети, иначе браузер не выдавал бы
числа <<ссылка из (22) в браузере возвращает число на пустой странице, которое мне и нужно считать>>.
47 — 08.09.16 — 15:53
(42) на сервере 64х разрядная система
(46) да работать это будет только на сервере
48 — 08.09.16 — 15:54
(42) (37) там много написано, изучать неделю только нужно, мне дали пример кода и что делать объяснили, но вот из за ошибки на send ничего не работает
49 — 08.09.16 — 15:54
(47) неа, иначе как ты видишь ссылка из (22) в браузере возвращает число на пустой странице, которое мне и нужно считать.
50 — 08.09.16 — 15:55
(49) я вижу это в браузере на сервере, там только работает
51 — 08.09.16 — 15:57
но вот из 1с ломается на методе send, пока ни разу не сработало
то что в (24) возвратило <?xml version=»1.0″ encoding=»UTF-8″?> то есть это не подойдет наверное, так как это не то что нужно
52 — 08.09.16 — 16:00
{Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (send)
ХМЛХТТП.Send(Null);
по причине:
Произошла исключительная ситуация (msxml3.dll): Указанный протокол неизвестен.
||
остается
53 — 08.09.16 — 16:18
54 — 08.09.16 — 16:20
Рядом с NetObjetToIDispatch45.dll лежит RegAsm.bat
его нужно запустить от администратора. Там делов меньше минуты
55 — 08.09.16 — 16:56
(54) ну я не администратор на сервере, мне сказали что метод сенд иногда не работает, иногда работает, я не пойму этого всего пока
falselight
56 — 08.09.16 — 16:57
(54) я не в теме этого всего, с этим всем нужно разбираться
Автор | Сообщение |
---|---|
Заголовок сообщения: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
|
Пытаюсь достучаться к базе биллинга (версия 5.2) из 1С через https посредством MSXML2.XMLHTTP по аналогии с описанным в документации биллинга версии 4.4 способом. Просто потому, что для новых версий соответствующий раздел отсутствует в документации. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
«Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Системная ошибка: -2146697208» |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
В старой документации предлагается генерить такую подстроку для получения результата произвольного запроса к базе биллинга(после строки подключения): |
Вернуться к началу |
|
aardvark |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
забейте на secret он используется только для клиента. С 4.4 мог поменяться формат xml выдаваемый биллингом. с 4.6 на 5.1 точно немного менялся для договоров. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
aardvark писал(а): забейте на secret он используется только для клиента. С 4.4 мог поменяться формат xml выдаваемый биллингом. с 4.6 на 5.1 точно немного менялся для договоров. Ага! На это я и надеялся (относительно secret). |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Делаю буквально следующее: Open(«POST», «https://СайтБиллинга:ПортБиллинга/bgbilling/executer?», 0) Дальше хочу послать простейший запрос для пробы — «select id from contract» Send( «user=Пользователь&pswd=Пароль&module=admin&action=SQLEditor&pageSize=100000&sql=ТекстЗапросаUrlencoded») Болт. И что уже только не делал. Результат один и тот же… |
Вернуться к началу |
|
Phricker |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Код: Функция ПослатьЗапрос( query ) i = odd.Send( «user=»+ user + «&pswd=»+ pswd + «&» + query ); // распечатка запросов и ответов, можно включить для отладки Возврат od; Функция SQLЗапрос( query ) Функция ПолучитьСписокКлиентов() Module=admin в 5.2 уже не работает кстати _________________ |
Вернуться к началу |
|
skyb |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Phricker писал(а): Помню как обновлялся на новый год на 5.2 а потом меня бухи будили когда выгрузку надо было делать первого числа в 8 утра? _________________ Код: Клиент: вер. 6.2.714 / 25.05.2015 17:27:15 Помощь по администрированию bgbilling в jabber конференции или Группа в telegram |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Phricker писал(а): Module=admin в 5.2 уже не работает кстати Так тоже делал. Та же самая ошибка. Но я вроде как докопался до корня зла. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
skn писал(а): может вам лучше напрямик в БД через ODBC драйвер ломиться? Так и делаю для других биллингов. Это запасной вариант. |
Вернуться к началу |
|
dimOn |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
рукашы писал(а): «Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Системная ошибка: -2146697208» а… понял… ошибка 1С а не биллинга. upd , ок _________________ |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
dimOn писал(а): а… понял… ошибка 1С а не биллинга. Ошибка не биллинга. Но и не 1С. Ошибка при работе через MSXML2.XMLHTTP. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Amir писал(а): Не работает только через HTTPS, или через HTTP тоже, или через HTTP проверить нет возможности? Прочитал, что подобная ошибка типична для многих сервисов, когда к ним тупо закрыт доступ (брендмауэром, например). Перепробовал все что мог — отключал брендмауэр, антивирус, в политиках безопасности лазил… Код: url = «https://Сайт:8443/bgbilling/executer?»; Т.е. простой запрос на выборку всех договоров. При вызове метода Send возникает исключение. |
Вернуться к началу |
|
Amir |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Пишут: Цитата: Для того чтобы 1С смогла работать с самоподписным сертификатом описание корневого сертификата надо добавить в файл cacert.pem (в каталоге программы bincacert.pem). Описание можно сгенерировать с помощью бесплатной утилиты openssl. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Amir писал(а): Пишут: Цитата: Для того чтобы 1С смогла работать с самоподписным сертификатом описание корневого сертификата надо добавить в файл cacert.pem (в каталоге программы bincacert.pem). Описание можно сгенерировать с помощью бесплатной утилиты openssl. Сделал. Не помогло. Что неудивительно, в принципе. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
В общем, 1С тут точно не причем. Код: Connect = new ActiveXObject(«MSXML2.XMLHTTP»); |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Что еще можно попробовать, куда посмотреть? |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Сертификат — да, самоподписанный. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
|
Вернуться к началу |
|
выскакивает постоянно 2 ошибки:
Или такая:
Код |
---|
{Обработка.АРМОбменСЕАИСТО.МодульОбъекта(134)}: Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Ошибка загрузки указанного ресурса. |
Или такая:
Код |
---|
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>DK_CREATE_ERROR</faultcode><faultstring>Сведения о данном ТС уже были переданы сегодня</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> |
Причем в еисто этот авто не зарегитрирован.
Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ. Редакция 5 (5.0.08.04)
Изменено: Тимофей Синичкин — 04.04.2014 14:52:13
Обновлено 28.11.2022
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. В прошлый раз мы с вами решали проблему, когда у нас тормозил Directum на терминальной ферме. В сегодняшней ситуации я опять вернусь к данному программному обеспечению и покажу, что мне удалось раскопать в ситуации, что при попытке создать договорной документ и выбрать его из конструктора документов, я получаю предупреждение «Ошибка поддержки безопасных каналов«. Давайте смотреть в чем дело и что можно поменять, чтобы все заработало.
Устранение ошибки поддержки безопасных каналов
Данную проблему я поймал в Directum на своей RDS-ферме. Стало увеличиваться количество обращений со стороны пользователей, что они при попытке создания договорного документа стали видеть ошибку:
Ошибка поддержки безопасных каналов
В логах просмотра событий я ничего толково не обнаружил, начал копать дальше.
- 1️⃣В интернете все копипастят друг у друга, что в данной ситуации помогает включение TLS, но я проверил и правки в реестре не дают ничего, тем более у меня уже они были активированы, я с этим еще сталкивался, когда получал ошибку «Unable to resolve package source» при установке модуля PowerShell.
- 2️⃣Далее если у вас есть антивирусное решение, то я вам советую его отключить на время, пока будите производить тестирование. Антивирус Касперского тут так же был ни причем
- 3️⃣Далее, что я обычно проверяю, это не производилась ли установка нового софта или обновлений Windows. Обязательно выведите список установленных программ и посмотрите, нет ли там чего-то нового. Бывает ситуация, что некоторые программы могут конфликтовать при совместном использовании, например очень частая ситуация с КриптоПРО, старыми версиями. Если она есть, то попробуйте ее удалить.
- 4️⃣Проверьте не было ли установки новых обновлений, это можно посмотреть в истории параметров Windows или в оснастке appwiz.cpl.
В результате на Windows Server прилетело KB5018411 на клиентские Windows 10 и Windows 11 прилетело kb5018410, что в итоге делать, на текущий момент просто удалять и ждать новых обновлений от Microsoft.
Если у вас есть поддержка от Directum, то стоит задать вопрос туда возможно. что-то подскажут, у меня такой возможности нет
Чтобы удалить KB5018411 я воспользуюсь командной строкой и утилитой wusa. Введите:
wusa /uninstall /kb:5018411
У вас выскочит окно с подтверждением удаления данного обновления. Нажмите ок, начнется процесс.
Так же вы можете сделать, и тихое удаление добавим ключи: /quiet /norestart
wusa /uninstall /kb:5018411 /quiet /norestart
После этого мой Directum заработал, посмотрю что будет со следующими обновлениями, может Mixrosoft пофиксит это.
Обновление 28.11.2022
Как и ожидалось, данная ошибка была устранена установкой ноябрьских обновлений KB5019964. С вами был Иван Семин, автор и создатель IT проекта Pyatilistnik.org.
Цитата:
MWWRuza ➤ Отправляю GET запрос
Откуда отправляешь? это не какое-то старое … которое с сертификатами не дружит?
Решил погуглить… так и есть
Как оказалось, далеко не все знают, что причина этих ошибок кроется в обновлении протокола шифрования на стороне сайта. Сейчас повсеместно начинает использоваться протокол TLS версии 1.2, поддержка которого в 1С полноценно начата с релиза 8.3.9
Поэтому для тех, кто использует встроенные средства 1С для работы с сайтом, достаточно обновить релиз 1С предприятия, и проблема решится сама собой.
Но часто мне попадаются обработки работы с сайтом, которые используют средства Windows: объекты класса «WinHTTP.WinHTTPRequest.5.1» или «MSXML2.ServerXMLHTTP.6.0» и т.п. В этом случае необходимо активировать поддержку протокола TLS 1.2 в самой Windows.
Для этого достаточно внести в реестр следующие записи, после чего перезагрузить Windows:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client]
«DisabledByDefault»=dword:00000000
«Enabled»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server]
«DisabledByDefault»=dword:00000000
«Enabled»=dword:00000001
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp]
«DefaultSecureProtocols»=dword:00000800
[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionInternet SettingsWinHttp]
«DefaultSecureProtocols»=dword:00000800
Небольшое замечание к двум последним параметрам. В указанном коде указано значение 00000800 — это значение активирует протокол TLS 1.2 по умолчанию. Если необходимо использовать TLS 1.1 то значение необходимо заменить на 00000200, а если оба протокола, то на 00000A00.
У меня была одна и та же проблема, и я попробовал множество решений, предлагаемых на разных должностях, но до сих пор не имел успеха. Я подробно расскажу о решении, которое сработало для меня со ссылкой на проблему, поскольку в моем случае это был PayPal. Я не открыл новую должность, так как это может быть не просто проблема с PayPal в будущем.
Решение представляет собой комбинацию нескольких решений, связанных с stackoverflow, с аналогичными проблемами, но это, пожалуй, самое лучшее, что можно добавить.
Проблема
Попытка протестировать IP-адрес PayPal в Windows Server 2008 с использованием классического ASP с помощью Sandbox PayPal возвращает ошибку «Ошибка в поддержке безопасного канала».
Почему это проблема
PayPal требует, чтобы все коммуникации с их системами были максимально безопасными. Вам потребуется соединение, которое является TLS 1.2. Windows Server 2008 по умолчанию не является TLS 1.2.
PayPal бросил некоторую путаницу в микс, сказав, что вам нужен сертификат Verisign G5, который вы делаете для корневого сервера, а не для домена, на котором запущен ваш код. Я также не устанавливал никаких сертификатов PayPal, поскольку я не использую API. Я не думаю, что вам нужны ваши коммиты с сайта HTTPS, хотя мой домен защищен с помощью стандартного сертификата GoDaddy EV, хотя после этого я прошел тест на сайте без HTTPS, и это тоже сработало.
Мое решение
-
Сначала проверьте, какой тип безопасности используется вашим сервером через Лаборатории SSL . Это должно быть TLS1.2 или выше , а не другие TLS или SSL. Он также должен иметь шифрование SHA256. Возможно, вам потребуется исправить сервер: https://support.microsoft.com/en- нас/кб/3106991 .
-
Используйте IISCrypto для установки правильных TLS и шифров . Я использовал изменения реестра, предложенные в другом месте в stackoverflow, но это не сработало и на самом деле полностью напортачивало мой сервер для всего, используя сообщения HTTPS, а не только для моего сайта разработки! IISCrypto также обрабатывает шифры.
-
Убедитесь, что ваш пул приложений v4.5 , что само по себе неясно, потому что IIS может предлагать только v4.0 в качестве опции. Однако это, вероятно, фактически v4.5. Вы можете проверить это с помощью https://msdn. microsoft.com/en-us/library/hh925568(v=vs.110).aspx .
-
В вашем коде вам нужно использовать
Server.CreateObject ("MSXML2.XMLHTTP.6.0")
, а неServer.CreateObject ("MSXML2.ServerXMLHTTP.6.0")
, как указано выше.
Теперь я понятия не имею, почему не-сервер XMLHTTP работает так, как будто это противоречит документации, стоящей за ним. Прямо сейчас, после 10 дней стресса, паники и разочарования, мне все равно! Надеюсь, это полезно для других.
Поиск решения был кошмаром, поэтому я добавлю несколько фраз ниже, чтобы помочь другим в поиске:
Ошибка IPN PayPal с ошибкой сервера
Ошибки PayPal SSL Windows 2008
Произошла ошибка в поддержке защищенного канала
классические ошибки протокола ASP PayPal Sandbox
I’d like to publicly thank Rackspace and GoDaddy for their help with this. I’d like to publicly state that I found paypal have the worst technical support ever and just do not care, constantly pointing to their own docs, if they ever respond. They say they’ve been sending emails out about this since September 2014 but I never received one. These new requirements are active on the PayPal Sandbox but go live in September 2016. I only came across it as developing a new solution so needed the sandbox — if you’re running live you won’t know about Проблема until it hits and then you’re dead in the water. Test your entire payment system on the PayPal sandbox asap is my advice!!
Ошибка при вызове метода контекста (Send): Произошла исключительная ситуация (WinHttp.WinHttpRequest): Ошибка поддержки безопасных каналов
Использую вот такую процедуру
WinHttp = Новый COMОбъект(«WinHttp.WinHttpRequest.5.1»);
WinHttp.Option(2,»utf-8″);
WinHttp.Open(«GET», «https://api.unisender.com/ru/api/importContacts?format=json&api_key=»; + Ключ, 0);
WinHttp.SetRequestHeader(«Accept-Language», «ru»);
WinHttp.SetRequestHeader(«Accept-Charset», «utf-8»);
WinHttp.setRequestHeader(«Content-Language», «ru»);
WinHttp.setRequestHeader(«Content-Charset», «utf-8»);
WinHttp.setRequestHeader(«Content-Type», «application/x-www-form-urlencoded; charset=utf-8»);
СтрокаЗапроса = «https://api.unisender.com/ru/api/importContacts?format=json&api_key=6qwibe9uewm7x6n9karscy6a7ze73q6tic3s65ty&field_names[0]=email&field_names[1]=email_list_ids&field_names[2]=Name&field_names[3]=will&field_names[4]=DR&field_names[5]=DR_end&data[0][0]=test@mail.ru&data[0][1]=15231245&data[0][2]=Петров Джон Биллович&data[0][3]=3555&data[0][4]=28.11.2018 0:00:00&data[0][5]=28.11.2018 0:00:00»;
Попытка
WinHttp.Send(СтрокаЗапроса);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Причем если запуская с компа на win 8, проблем нет, но если запускаю с сервера Win 2008 R2, то такая вот фигня
YuryL |
|
Статус: Новичок Группы: Участники
Зарегистрирован: 06.02.2014(UTC) |
Доброго времени суток! На Windows 7 установлено следующее ПО КриптоПро: В реестр импортирован личный сертификат, через оснастку установлен в хранилище сертификатов. Далее js-скриптом пытаемся осуществить запрос к контент-провайдеру: Код:
В ответ получаю ошибку: WinHTTP returned error: 12157. Ошибка поддержки безопасных каналов |
|
|
YuryL |
|
Статус: Новичок Группы: Участники
Зарегистрирован: 06.02.2014(UTC) |
Дополню. Данная проблема проявляется только на ресурсах, которые требуют авторизацию на сертификатах. |
|
|
Vladislav Osmanov |
|
Статус: Сотрудник Группы: Участники
Зарегистрирован: 19.08.2009(UTC) Поблагодарили: 4 раз в 4 постах |
Юрий, добрый вечер. Судя по всему, это не совсем js, как Вы пишите, а Windows Script. Как он у вас выполняется? Попробуйте использовать подключение через XMLHttpRequest с исполнением кода в браузере Internet Explorer. Примерный код: Код:
Браузер сам предложит Вам выбрать клиентский сертификат. |
|
WWW |
YuryL |
|
Статус: Новичок Группы: Участники
Зарегистрирован: 06.02.2014(UTC) |
Автор: Vladislav Osmanov Юрий, добрый вечер. Судя по всему, это не совсем js, как Вы пишите, а Windows Script. Как он у вас выполняется? Попробуйте использовать подключение через XMLHttpRequest с исполнением кода в браузере Internet Explorer. Примерный код: Код:
Браузер сам предложит Вам выбрать клиентский сертификат. Владислав, спасибо за ответ! Извиняюсь, конечно же WScript. Путем множества экспериментов пришел к такой зависимости: И попутно появилась вторая проблема. Никак не могу использовать компонент для проверки ЭЦП: Код:
Ругается что компонент не найден. Устанавливал по инструкции с вашего сайта. У меня Windows 7 x64. Неужели под эту ОС нет возможности использовать данный компонент? |
|
|
Максим Коллегин |
|
Статус: Сотрудник Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сказал «Спасибо»: 21 раз |
в 64-х битах нет CAPIcom, на аналогичный интерфейс предоставляет наш browser плагин. Отредактировано пользователем 6 февраля 2014 г. 19:02:26(UTC) |
Знания в базе знаний, поддержка в техподдержке |
|
|
WWW |
Андрей Писарев |
|
Статус: Сотрудник Группы: Участники Зарегистрирован: 26.07.2011(UTC) Сказал «Спасибо»: 451 раз |
Автор: YuryL Ругается что компонент не найден. Устанавливал по инструкции с вашего сайта. У меня Windows 7 x64. Неужели под эту ОС нет возможности использовать данный компонент? И браузер IE используется х64? |
Техническую поддержку оказываем тут |
|
|
WWW |
YuryL |
|
Статус: Новичок Группы: Участники Зарегистрирован: 06.02.2014(UTC) |
Автор: Андрей * Автор: YuryL Ругается что компонент не найден. Устанавливал по инструкции с вашего сайта. У меня Windows 7 x64. Неужели под эту ОС нет возможности использовать данный компонент? И браузер IE используется х64? Андрей, я использую данные компоненты не в браузере, а в автономных скриптах. Т.е. фактически вызываются они console-mode. |
|
|
YuryL |
|
Статус: Новичок Группы: Участники
Зарегистрирован: 06.02.2014(UTC) |
Автор: maxdm в 64-х битах нет CAPIcom, на аналогичный интерфейс предоставляет наш browser плагин. Пробую использовать ваш плагин. Контент-провайдер возвращает мне документ подписанные ЭЦП в кодировке BASE64. Сертификат отправителя с открытым ключом для ЭЦП я импортировал в хранилище сертификатов. Пробую снять ЭЦП так: Код:
Данный код возвращает исключение: 4111 (Криптографическое сообщение не содержит всех запрошенных атрибутов). |
|
|
Пользователи, просматривающие эту тему |
Guest (2) |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.