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,3981 gold badge29 silver badges44 bronze badges
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). После чего перезагрузите компьютер.
I am using an MSXML.HTTPRequest
object in a VB macro (excel) to communicate with an HTTP server. The problem is that it throws the following error intermittently.
msxml3.dll -2146697211 The system cannot locate the resource
specified.
I noticed on my system that this happened when the network was down, but my client has complained of it happening intermittently on his machine. Given that his system has Windows 7 installed and it is working at times, I don’t think it is an issue of the correct library not being installed. He has tried it on a few networks, but it still fails.
Function xmlHTTPPost(strURL, strData)
Dim objHttp
On Error Resume Next
xmlHTTPPost = ""
Set objHttp = CreateObject("Microsoft.XMLHTTP")
If Err.Number <> 0 Then
Err.Clear
Set objHttp = CreateObject("MSXML2.XMLHTTP")
End If
If Err.Number <> 0 Then
MsgBox "Error creating XMLHTTP object"
Err.Clear
Exit Function
End If
objHttp.Open "GET", strURL, False
If Err.Number <> 0 Then
Err.Clear
Set objHttp = Nothing
Exit Function
End If
objHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHttp.setRequestHeader "User-Agent", "Mozilla Compatible (MS IE 3.01 WinNT)"
objHttp.Send
If Err.Number <> 0 Then
MsgBox "Error " & Hex(Err.number) & " sending to server:" & vbCrLf & Err.description
xmlHTTPPost = "ERROR: " & Err.Source & " " & Err.Number & " " & Err.Description
Err.Clear
Else
xmlHTTPPost = objHttp.responseText
End If
Set objHttp = Nothing
End Function
It’s working perfectly on my box, which is a Windows 7 + Microsoft Office 2007 installation.
I have searched a lot online, and two reasons have been vaguely mentioned.
- Network issues due to proxy or firewall. In this case it should never connect, not intermittently.
- Library installation issue. Again, it shouldn’t work at all but that’s not the case.
- Remove From My Forums
-
Question
-
User-73514677 posted
Hi,
I am getting the following error, when running my website.(ASP.NET 2.0 and C#).
«msxml3.dll: The system cannot locate the resource specified.». I have registered the msxml3.dll.
This is the code, where it breaks:
function httpRequestCall(pagename) { var http=new ActiveXObject("Msxml2.XMLHTTP"); http.open("GET",pagename ,false); http.send(null); }
I am getting the error in http.send(null) call.How to solve this?
Thank you
Answers
-
User1414178881 posted
Strange..It’s working perfectly for me,what are the MSXML installed in the machine?
Maybe you need to install the latest MSXML or (MSXML3 but I’m not sure of last one).
In my PC (MSXML 4.0 SP2 Parser and SDK) and (MSXML 6.0 Parser) are installed
Let’s debug the javascript,add this statement before the try block:
debugger;
Also,make sure that internet Explorer’s advanced option (Disable Script Debugging) is uncheked
then run your code,then you will notice that the debugger stopped at that statement,continue execution then quickwatch over the http object,check if it’s created correctly then continue till you reach the send function,but make sure that you already added
a breakpoint in that webpage or whatever it is to see if that page you are requesting is actually called.Also,check on the size of the response,who knows may be it’s large or something,and use a different url to see if you can generate the same issue.
Let me know the results
-
Marked as answer by
Thursday, October 7, 2021 12:00 AM
-
Marked as answer by
Автор | Сообщение |
---|---|
Заголовок сообщения: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
|
Пытаюсь достучаться к базе биллинга (версия 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 (в каталоге программы \bin\cacert.pem). Описание можно сгенерировать с помощью бесплатной утилиты openssl. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Amir писал(а): Пишут: Цитата: Для того чтобы 1С смогла работать с самоподписным сертификатом описание корневого сертификата надо добавить в файл cacert.pem (в каталоге программы \bin\cacert.pem). Описание можно сгенерировать с помощью бесплатной утилиты openssl. Сделал. Не помогло. Что неудивительно, в принципе. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
В общем, 1С тут точно не причем. Код: Connect = new ActiveXObject(«MSXML2.XMLHTTP»); |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Что еще можно попробовать, куда посмотреть? |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
Сертификат — да, самоподписанный. |
Вернуться к началу |
|
рукашы |
Заголовок сообщения: Re: Доступ к таблицам биллинга извне. Изменился протокол?
|
|
|
Вернуться к началу |
|