I have a java script code snippet where i am making an XMLHTTP request to a remote server page. The below is my code
var objXMLdom = new ActiveXObject("Microsoft.XmlDOM")
var objXMLRecdom = new ActiveXObject("Microsoft.XmlDOM")
objXMLdom.async = false
var objXMLRoot = objXMLdom.createElement("root");
objXMLdom.documentElement = objXMLRoot;
objXMLRoot.setAttribute("strWoCode",id);
var objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
strHTTP = "getDataResponse.aspx?wocode="+strWoCode+"&mode="report";
objXMLHttp.open("POST",strHTTP,false)
objXMLHttp.send(objXMLdom);
When the last line (send()) is executing,I am getting an error like » msxml3.dll: The download of the specified resource has failed.» . My development machine is running on Win XP SP 2
Can anyone help to get rid of this ?
asked Sep 10, 2009 at 9:55
The problem is caused by your strHTTP variable. It needs to contain the full URL. Also, don’t forget to encode your strWoCode variable to prevent URL injection.
strHttp = "http://www.mywebsite.com/getDataResponse.aspx?";
strHTTP = strHTTP + "wocode="+encodeURIComponent(strWoCode)+"&mode="report";
answered Aug 4, 2011 at 3:56
jveazeyjveazey
5,3781 gold badge29 silver badges44 bronze badges
выскакивает постоянно 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
(0) У вас была установлена какая-то дополнительная программа, которая заменила версии библиотек.
Чтобы их восстановить:
1) Разрегистрируйте msxml4 с помощью утилиты regdllview-32 (см. вложение) — в списке dll ищете (Ctrl+F) msxml4,
затем правой кнопкой мыши на ней и выбираете команду Unregister Selected Files.
2) Затем снова правой кнопкой мыши по этому же файлу и выбираете команду Delete All Entries For Selected Files.
Если этого файла уже нет, то данный пункт выполнять не нужно.
3) Затем запустите RegXMLDLL.bat
Желательно выполнять действия от имени Администратора.
https://disk.yandex.ru/d/6n5XEeHQ3Y9asT
Автор | Сообщение |
---|---|
Заголовок сообщения: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 17:14 |
|
|
Пытаюсь достучаться к базе биллинга (версия 5.2) из 1С через https посредством MSXML2.XMLHTTP по аналогии с описанным в документации биллинга версии 4.4 способом. Просто потому, что для новых версий соответствующий раздел отсутствует в документации. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 18:29 |
|
«Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Системная ошибка: -2146697208» |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 18:46 |
|
В старой документации предлагается генерить такую подстроку для получения результата произвольного запроса к базе биллинга(после строки подключения): |
Вернуться к началу |
|
aardvark |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 19:40 |
|
забейте на secret он используется только для клиента. С 4.4 мог поменяться формат xml выдаваемый биллингом. с 4.6 на 5.1 точно немного менялся для договоров. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 19:54 |
|
aardvark писал(а): забейте на secret он используется только для клиента. С 4.4 мог поменяться формат xml выдаваемый биллингом. с 4.6 на 5.1 точно немного менялся для договоров. Ага! На это я и надеялся (относительно secret). |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 20:11 |
|
Делаю буквально следующее: Open(«POST», «https://СайтБиллинга:ПортБиллинга/bgbilling/executer?», 0) Дальше хочу послать простейший запрос для пробы — «select id from contract» Send( «user=Пользователь&pswd=Пароль&module=admin&action=SQLEditor&pageSize=100000&sql=ТекстЗапросаUrlencoded») Болт. И что уже только не делал. Результат один и тот же… |
Вернуться к началу |
|
Phricker |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 18 июн 2012, 21:52 |
|
Код: Функция ПослатьЗапрос( query ) i = odd.Send( «user=»+ user + «&pswd=»+ pswd + «&» + query ); // распечатка запросов и ответов, можно включить для отладки Возврат od; Функция SQLЗапрос( query ) Функция ПолучитьСписокКлиентов() Module=admin в 5.2 уже не работает кстати _________________ |
Вернуться к началу |
|
skyb |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 04:34 |
|
Phricker писал(а): Помню как обновлялся на новый год на 5.2 а потом меня бухи будили когда выгрузку надо было делать первого числа в 8 утра? _________________ Код: Клиент: вер. 6.2.714 / 25.05.2015 17:27:15 Помощь по администрированию bgbilling в jabber конференции или Группа в telegram |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 13:37 |
|
Phricker писал(а): Module=admin в 5.2 уже не работает кстати Так тоже делал. Та же самая ошибка. Но я вроде как докопался до корня зла. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 13:39 |
|
skn писал(а): может вам лучше напрямик в БД через ODBC драйвер ломиться? Так и делаю для других биллингов. Это запасной вариант. |
Вернуться к началу |
|
dimOn |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 13:54 |
|
рукашы писал(а): «Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Системная ошибка: -2146697208» а… понял… ошибка 1С а не биллинга. upd , ок _________________ |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 14:00 |
|
dimOn писал(а): а… понял… ошибка 1С а не биллинга. Ошибка не биллинга. Но и не 1С. Ошибка при работе через MSXML2.XMLHTTP. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 15:18 |
|
Amir писал(а): Не работает только через HTTPS, или через HTTP тоже, или через HTTP проверить нет возможности? Прочитал, что подобная ошибка типична для многих сервисов, когда к ним тупо закрыт доступ (брендмауэром, например). Перепробовал все что мог — отключал брендмауэр, антивирус, в политиках безопасности лазил… Код: url = «https://Сайт:8443/bgbilling/executer?»; Т.е. простой запрос на выборку всех договоров. При вызове метода Send возникает исключение. |
Вернуться к началу |
|
Amir |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 16:51 |
|
Пишут: Цитата: Для того чтобы 1С смогла работать с самоподписным сертификатом описание корневого сертификата надо добавить в файл cacert.pem (в каталоге программы bincacert.pem). Описание можно сгенерировать с помощью бесплатной утилиты openssl. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 18:31 |
|
Amir писал(а): Пишут: Цитата: Для того чтобы 1С смогла работать с самоподписным сертификатом описание корневого сертификата надо добавить в файл cacert.pem (в каталоге программы bincacert.pem). Описание можно сгенерировать с помощью бесплатной утилиты openssl. Сделал. Не помогло. Что неудивительно, в принципе. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 19:58 |
|
В общем, 1С тут точно не причем. Код: Connect = new ActiveXObject(«MSXML2.XMLHTTP»); |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 19:59 |
|
Что еще можно попробовать, куда посмотреть? |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 19 июн 2012, 20:03 |
|
Сертификат — да, самоподписанный. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол? Добавлено: 21 июн 2012, 19:32 |
|
|
Вернуться к началу |
|
12052 просмотра
4 ответа
386 Репутация автора
Я использую MSXML.HTTPRequest объект в макросе VB (Excel) для связи с HTTP-сервером. Проблема в том, что он периодически выдает следующую ошибку.
msxml3.dll -2146697211 Системе не удается найти указанный ресурс.
Я заметил в своей системе, что это произошло, когда сеть не работала, но мой клиент жаловался на то, что это периодически происходит на его компьютере. Учитывая, что в его системе установлена Windows 7, и она иногда работает, я не думаю, что это проблема правильной установки библиотеки. Он попробовал это в нескольких сетях, но это все еще не удается.
Он отлично работает на моем компьютере, который является установкой Windows 7 + Microsoft Office 2007.
Я много искал в Интернете, и две причины были смутно указаны.
- Проблемы с сетью из-за прокси или брандмауэра. В этом случае он никогда не должен подключаться, а не периодически.
- Проблема с установкой библиотеки. Опять же, это не должно работать вообще, но это не так.
Автор: nutsiepullyИсточник Размещён: 30.07.2012 05:38
Ответы (4)
3 плюса
386 Репутация автора
На данный момент я смог решить эту проблему, изменив метод с GET на POST. Ошибка была периодической, но, к счастью, она начала появляться на моей машине разработчика, и смена метода HTTP на POST сделала свое дело. Это очень странно, но это сработало.
1 плюс
31 Репутация автора
Я также иногда получаю это на своем сервере. Как только я перезагружаю сервер, он начинает работать нормально и снова периодически прерывается. Снова пришлось перезагрузить. Сообщения об ошибках являются случайными и периодическими.
плюса
1192 Репутация автора
Используйте MSXML v6.0, MSXML v3.0 больше не распространяется с Office или Windows. v6.0 распространяется только с Windows 7. Но Office 2010+ больше не поставляется с любой версией MSXML. Это объясняет причины вашей проблемы.
1 плюс
35 Репутация автора
FWIW, я получил ту же ошибку. Как оказалось (в конце концов), в файле XML возникли ошибки. Глупый я, я бы подумал, что Microsoft предоставит более значимое сообщение об ошибке. Если вы получили эту ошибку, попробуйте использовать одну из многих доступных программ проверки XML.
У меня есть функция, которая использует MSXML для публикации XML-документа, который вчера начал сбой, несмотря на то, что в код не было внесено никаких изменений. Функция следующая:
Документ XML и передаваемый адрес являются правильными — строка, вызывающая ошибку, равна xmlHTTP.send(xmlDoc) . Я пробовал это на двух разных машинах с одинаковой ошибкой каждый раз, а также пытался смонтировать MSXML3, без каких-либо успехов.
Это оказалось сетевой проблемой — я не подозревал об этом сначала, так как ошибка была поднята так быстро, что не предполагало проблему с конечной точкой. Проблема заключалась в том, что к брандмауэру было добавлено правило (не спрашивайте, почему), предотвращая связь с целевым адресом.
Windows DLL файлы
В этом разделе размещен архив dll файлов. Вы можете скачать msxml3.dll бесплатно.
Инструкции по регистрации DLL файлов в Windows 98, XP, Vista, 7:
Если у Вас возникла ошибки, связанная с файлами *.dll и *.ocx, необходимо:
1. Проверить наличие в системе требуемых файлов. Файлы *.dll и *.ocx, как правило, должны быть расположены в системной папке C:WINDOWSsystem32.
Если файлы присутствуют, нужно зарегистрировать их.
— Нажать на “Пуск/Выполнить” или нажать сочетания клавиш Win + R
или
— Ввести regsvr32 msxml3.dll (например: regsvr32 msxml3.dll )
— Перезагрузить компьютер
2. Если требуемых файлов нет, то поищите их на сайте, скачайте и скопируйте в папку C:WINDOWSsystem32 и зарегистрировать как указано в первом пункте. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
msxml3.dll 8.70.1113.0
Если у Вас появилось сообщение об ошибке, говорящее о том, что файл msxml3.dll отсутствует, поврежден, потерян, требуется или MSXML 3.0 SP10 «запуск программы невозможен, так как на компьютере отсутствует msxml3.dll«, «msxml3.dll не был найден» («msxml3.dll not found«), то скачайте файл msxml3.dll и скопируйте его в папку «c:/windows/system32» (в случае если Windows установлен на диск C). После чего перезагрузите компьютер.