iis 7 - Errores de MSXML3.dll 80072efd y 800c0005 que ejecutan ServerXMLHTTP.send en ASP clásico en Windows 7
iis-7 asp-classic (6)
Tengo una página ASP clásica que estoy tratando de depurar en IIS en Windows 7. La página funciona bien en otra máquina que ejecuta Windows Server 2003 en una red diferente. Además, en la máquina con Windows 7, puedo abrir con éxito la URL en cuestión en un navegador.
La página falla al ejecutar ServerXMLHTTP.send () con el error:
msxml3.dll error ''80072efd''
A connection with the server could not be established
El código en cuestión se ve así (la última línea falla):
set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "get", "http://stackoverflow.com", False
xmlHTTP.send
He buscado y la sugerencia más útil fue utilizar NetSh para establecer un proxy para winHTTP. La máquina con problemas está en una red que usa un servidor proxy. Sin embargo, incluso después de configurar el proxy y reiniciar sigo recibiendo el mismo error.
Cambiando
set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
a
set xmlHTTP = server.CreateObject("MSXML2.XMLHTTP")
produce un error ligeramente diferente:
msxml3.dll error ''800c0005''
The system cannot locate the resource specified.
También intenté instalar MSXML4 SP3 y crear explícitamente un objeto v4 usando:
set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
Sigo recibiendo los mismos errores, excepto con msxml4.dll en el mensaje.
Finalmente, traté de apagar mi cliente proxy de Forefront TMG, decirle a mi navegador que no use un proxy, y usar netsh para restablecer el proxy para winHTTP. Siguen siendo los mismos errores aunque el navegador aún puede acceder a Internet.
Por lo que he encontrado, creo que esto debe ser un problema con la conectividad de esta máquina en particular sobre la red particular en la que se encuentra. Sin embargo, no tengo idea de cuál es el problema. Cualquier sugerencia recibida con gratitud
Descubrí que al obtener el error 800C005 en mi script, la conectividad con el servidor de soap al que me estaba conectando marca la diferencia.
Tuve que definir múltiples entradas en mi tabla HOSTS de Windows para ejecutar el script sin el error.
Ponga en mysoapserverurl.com que dio un error al agregar www.mysoapserverurl.com que funciona, dejando solo la URL con www. la secuencia de comandos da el error nuevamente (siempre el error msxml3.dll).
@Dan: ¿Intentó con la IP para .com?
set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "get", "http://64.34.119.12/", False
xmlHTTP.send
response.write xmlHTTP.responseText
Resuelto para mi caso, hay muchas otras razones por las que puede obtener este error. La respuesta corta para mí fue: compruebe al usuario que Classic .Net AppPool se está ejecutando y asegúrese de que su red les permita el acceso a Internet.
Descargué Microsoft Network Monitor y miré el tráfico durante una falla. El único tráfico que podría haber estado relacionado iba a nuestro servidor proxy y consistía en un intento fallido de autenticación.
Luego verifiqué los pools de aplicaciones en IIS y, con seguridad, el Classic .Net AppPool se configuró para usar una cuenta de máquina local que el proxy no reconocía. Cambiar la cuenta para usar a una cuenta de dominio solucionó el error.
Podría suceder si su URL tiene más de 255 caracteres de longitud. De alguna forma, XML no permite publicar más de 255 caracteres
La única respuesta razonable que encontré en Google fue esta. Espero que ayude.
¿Cómo leo los contenidos de una página web remota? [enlace eliminado]
Un error común que puede recibir:
> msxml3.dll error ''80072efd''
> A connection with the server could not be established
Asegúrese de que la URL sea realmente accesible. Es posible que haya escrito mal el nombre de dominio, o que el sitio realmente esté inactivo. Pruebe usando un navegador de esa máquina, o simplemente ejecute un tracert / ping. Tenga en cuenta que ping no siempre arrojará resultados, ya que muchos sitios bloquean todo ese tráfico (principalmente para ayudar a eliminar los ataques de DOS). Sin embargo, ping debería al menos hacerle saber la dirección IP, lo que significa que el nombre de dominio se resolvió correctamente a través de DNS. De lo contrario, es posible que su servidor DNS esté impidiendo la conexión.
Este error también puede ocurrir al usar HTTPS si la sesión SSL no se puede negociar debido a cifras incompatibles.
La prueba SSL de SSL Labs puede ayudar a determinar cuáles son compatibles.
Sé que la pregunta original era sobre una conexión que no es SSL, pero expongo esto ya que es el primer golpe en Google al buscar el mensaje de error.