2013-02-27 5 views
0

Я пытаюсь создать веб-страницу в классическом ASP, чтобы проверить статус ряда URL-адресов.Проблемы с подключением ServerXMLHTTP

Мой код выглядит следующим образом:

Function TestSite(sURL) 

    UserAgent = "Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1)" 

    Set poster = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") 
    poster.open "GET", sURL, false 
    poster.setRequestHeader "User-Agent",UserAgent 
    poster.send 

    If poster.status = 200 Then 
    TestSite = poster.responseText 
    Else 
    ' ## ERROR ## ' 
    TestSite = "" 
    End If 
    Set poster = Nothing 
End Function 

URL-адреса все HTTPS с включенными нестандартные номера портов (например https://somedomain.com:4433/restofurl)

Когда я запустить URLs в веб-браузере, они загружаются просто отлично, но когда я их через функцию выше я получаю:

A connection with the server could not be established 

Я проверил свою функцию со следующим Alternativ es: 1) Незащищенный URL - это нормально работает 2) Защищенный URL-адрес без указанного порта - это отлично работает 3) Защищенный URL-адрес, указывающий порт 443 - это нормально работает 4) Защищенный URL-адрес, указывающий порт 443 на целевой сервер - ЭТО работает нормально

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

+0

Взгляните на [этот ответ по аналогичному вопросу] (http://stackoverflow.com/a/4368725/911083). Также рассмотрите настройки брандмауэра и т. Д., Или, другими словами, все, что может сделать ваш компьютер, чтобы блокировать подключения от IIS к внешнему миру. – webaware

+0

Уже прочитал этот ответ, и в этом случае он не применяется - ни сервер (насколько мне известно) не работает с IIS7. – FrustratedWDotNet

ответ

0

Проблема оказалась быть связанным с нашим старым сервером (все еще запущенным Win2003), и их настройка будет еще более нестандартной, чем номера портов!

Окончательное решение заключалось в размещении кода на каком-то отдельном хостинге (на сервере с более поздней версией Windows). Не идеально, но, по крайней мере, у нас есть работа. (В нашем будущем также будет обновление сервера, что, мы надеемся, станет окончательным решением.)

0

Это, вероятно, означает, что сервер, на котором работает ваш код, не имеет тех же сертификатов, что и сервер, на который вы отправляете запрос. Хотя браузер, который вы используете, имеет их.

Вы можете проверить это, сделав ваш сервер игнорировать конкретные проблемы сертификатов, добавив этот код (прежде чем отправить запрос, от курса), и попробовать некоторые из значений:

Const SXH_SERVER_CERT_IGNORE_UNKNOWN_CA = 256 
Const SXH_SERVER_CERT_IGNORE_WRONG_USAGE = 512 
Const SXH_SERVER_CERT_IGNORE_CERT_CN_INVALID = 4096 
Const SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID = 8192 
Const SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056 
poster.setOption 2, poster.getOption(2) - SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID 
+0

Просто попробовал все это, и я все равно получаю ту же ошибку. Спасибо за предложение. – FrustratedWDotNet

Смежные вопросы