MSXML3.dll 80072efd и 800c0005 ошибки при выполнении ServerXMLHTTP.send в классическом ASP на Windows 7 - PullRequest
6 голосов
/ 05 декабря 2010

У меня есть классическая страница ASP, которую я пытаюсь отладить в IIS в Windows 7. Страница отлично работает на другой машине с Windows Server 2003 в другой сети. Кроме того, на компьютере с Windows 7 я могу успешно открыть соответствующий URL в браузере.

Страница завершается ошибкой при выполнении ServerXMLHTTP.send () с ошибкой:

msxml3.dll error '80072efd'
A connection with the server could not be established 

Код, о котором идет речь, выглядит следующим образом (последняя строка терпит неудачу):

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "get", "http://stackoverflow.com", False
xmlHTTP.send

Я искал вокруг, и самое полезное предложение было использовать NetSh, чтобы установить прокси для winHTTP. Машина с проблемами находится в сети, которая использует прокси-сервер. Тем не менее, даже после настройки прокси и перезагрузки, я все равно получаю ту же ошибку.

Изменение

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")

до

set xmlHTTP = server.CreateObject("MSXML2.XMLHTTP")

выдает немного другую ошибку:

msxml3.dll error '800c0005'
The system cannot locate the resource specified.

Я также пытался установить MSXML4 SP3 и явно создать объект v4, используя:

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP.4.0")

Я все еще получаю те же ошибки за исключением msxml4.dll в сообщении.

Наконец, я попытался отключить свой прокси-клиент Forefront TMG, запретив браузеру использовать прокси-сервер, и с помощью netsh сбросить прокси-сервер для winHTTP. Все те же ошибки, хотя браузер все еще может получить доступ к Интернету.

Из того, что я обнаружил, я считаю, что это может быть проблема с подключением к этой конкретной машине через конкретную сеть, в которой он находится. Тем не менее, я понятия не имею, в чем проблема. Любые предложения с благодарностью получены.

Ответы [ 7 ]

4 голосов
/ 06 декабря 2010

Решено для моего случая, хотя существует множество других причин, по которым вы можете получить эту ошибку.Короткий ответ для меня был следующим: проверьте пользователя, под которым работает Classic .Net AppPool, и убедитесь, что ваша сеть предоставляет им доступ в Интернет.

Я скачал Microsoft Network Monitor и посмотрел трафик во время сбоя.Единственный трафик, который мог быть связан, был направлен на наш прокси-сервер и состоял из неудачной попытки аутентификации.

Затем я проверил пулы приложений в IIS и убедился, что Classic .Net AppPool настроен для использованияучетная запись локальной машины, которая не была распознана прокси.Изменение учетной записи для использования в доменной учетной записи исправило ошибку.

0 голосов
/ 07 сентября 2018

Это сработало для исправления моей проблемы с тем же номером ошибки в файле VBS с помощью Microsoft.XmlHttp.

Попробуйте добавить пустые двойные кавычки в конце http.send

http = CreateObject("Microsoft.XmlHttp")
http.open "GET", strURL, False
http.send ""

Работало для меня,Удачи тебе.

0 голосов
/ 04 апреля 2016

Я обнаружил, что при получении ошибки 800C005 в моем сценарии, подключение к серверу мыла, к которому я подключался, имеет значение.

Нужно было определить несколько записей в моей таблице Windows HOSTS, чтобы запустить скрипт без ошибки.

Введите mysoapserverurl.com, который выдал ошибку, при добавлении www.mysoapserverurl.com, которая работает, оставляя только URL с www. скрипт снова выдает ошибку (всегда msxml3.dll ошибка).

0 голосов
/ 31 октября 2015

Эта ошибка также может возникать при использовании HTTPS, если сеанс SSL не может быть согласован из-за несовместимых шифров.

Тест SSL SSL Labs может помочь определить, какие из них совместимы.

Я знаю, что первоначальный вопрос был о соединении без SSL, но я выкладываю это там, так как это первое попадание в Google при поиске сообщения об ошибке.

0 голосов
/ 20 марта 2012

Это может произойти, если длина вашего URL превышает 255 символов.Некоторые, как XML не позволяет размещать более 255 символов

0 голосов
/ 06 декабря 2010

@ Дэн: Вы пытались с IP для stackoverflow.com?

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "get", "http://64.34.119.12/", False
xmlHTTP.send

response.write xmlHTTP.responseText
0 голосов
/ 05 декабря 2010

Единственный разумный ответ, который я нашел в Google, был этот. Надеюсь, это поможет.

Как мне прочитать содержимое удаленной веб-страницы? [ссылка удалена]

Распространенная ошибка, которую вы можете получить:

>     msxml3.dll error '80072efd'  
>     A connection with the server could not be established

Убедитесь, что URL на самом деле достижимы. Возможно, вы написали неверное имя домена, или сайт может на самом деле быть вниз. Тест с использованием браузер с этой машины, или просто работает трассер / пинг. Обратите внимание, что ping не всегда возвращает результаты, потому что многие сайты блокируют все такие трафик (в основном, чтобы помочь устранить DOS атак). Тем не менее, пинг должен в хотя бы сообщить вам IP-адрес, это означает, что доменное имя было правильно решен через DNS. В противном случае, возможно, ваш DNS сервер запрещает соединение.

...