1 (изменено: alexii, 2012-08-25 15:21:29)

Тема: JScript: Ошибка (0x800C0005) msxml3.dll

Есть следующий JS скрипт:

var host = "195.225.228.4";
var port = "110";
// Фунция сканирования порта
function scanPort(){
      browser = new ActiveXObject("MSXML2.XMLHTTP");
      browser.open("GET","http://"+host+":"+port, true);
      browser.onreadystatechange=analyse;
      browser.send(null);
    WScript.echo ("Незакрывайте это окно пока не получите ответ от сервера");
}
// Функция которая покажет нам все этапы осуществления запроса
function analyse(){
      if(browser.readyState==4){
        WScript.echo(
            "Текущее состояние",browser.readyState,"\n",
            " HTTP-статус: ",browser.status,"\n",
            "Текст ответа: ",browser.responseText,"\n",
            "Статус в виде строки: "+browser.statusText);
      }
}
scanPort();

После запуска скрипта идет вывод данных с WScript.echo, после закрытия окна выбивает ошибку:

The system cannot locate the resource specified.
Код (0x800C0005)
Источник msxml3.dll

В чем может быть ошибка:|

2

Re: JScript: Ошибка (0x800C0005) msxml3.dll

Пишет что ошибка в строке   browser.send(null);
Пробовал прописывать MSXML2.XMLHTTP.3.0 иMSXML2.XMLHTTP.4.0 - результат тот же

3

Re: JScript: Ошибка (0x800C0005) msxml3.dll

fomenos пишет:

var host = "195.225.228.4";
var port = "110";

По данному адресу и порту что-то есть? Сдается мне, что Ваш скрипт просто не может найти ресурс. Попроуйте сменить адрес/порт на что-то другое, например гугл или яндекс. И замените true на false в строке

browser.open("GET","http://"+host+":"+port, true);

Значение true указывает, что надо выполнить асинхронный запрос. Если ресурс труднодоступен по времени, то скрипт просто завершится до того момента пока будут получены все данные. Значение false заставит скрипт ожидать окончания выполнения запроса.

( 2 * b ) || ! ( 2 * b )

4 (изменено: alexii, 2012-08-25 15:23:54)

Re: JScript: Ошибка (0x800C0005) msxml3.dll

С проблемой разобрался. Ошибка возникает в зависимости от типа запроса - синхронный или асинхронный:

// Синхронный запрос - ошибка при обращении к несуществующему 195.225.228.5
var host = "195.225.228.5";
function scanPort(){
      browser = new ActiveXObject("MSXML2.XMLHTTP");
      browser.open("POST","http://"+host, false);
    browser.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    browser.send(null);
    WScript.echo(
            "Текущее состояние",browser.readyState,"\n",
            " HTTP-статус: ",browser.status,"\n",
            "Текст ответа: ",browser.responseText,"\n",
            "Статус в виде строки: "+browser.statusText);
}
scanPort()
//Асинхронный запрос - нет ошибки при обращении к несуществующему 195.225.228.5, идет вывод данных
var host = "195.225.228.5";
function scanPort(){
      browser = new ActiveXObject("MSXML2.XMLHTTP.3.0");
      browser.open("POST","http://"+host, true);
      browser.onreadystatechange=analyse;
      browser.send(null);
    WScript.echo ("Незакрывайте это окно пока не получите ответ от сервера");
}
// Функция которая покажет нам все этапы осуществления запроса
function analyse(){
      if(browser.readyState==4){
        WScript.echo(
            "Текущее состояние",browser.readyState,"\n",
            " HTTP-статус: ",browser.status,"\n",
            "Текст ответа: ",browser.responseText,"\n",
            "Статус в виде строки: "+browser.statusText);
      }
}
scanPort();

Впринципе я применил конструкцию try  catch(except) дабы приглушить ошибку для синхронного запроса.

5

Re: JScript: Ошибка (0x800C0005) msxml3.dll

Задача состоит в написании сканера, который поможет отловить нужный мне IP адрес, на нем висит как бы видеосервер с камерами наблюдения

6

Re: JScript: Ошибка (0x800C0005) msxml3.dll

fomenos, я добавил префикс языка в заголовок темы. Оформил код в Ваших постах с использованием тэга «code». В будущем делайте сие сами.

7

Re: JScript: Ошибка (0x800C0005) msxml3.dll

fomenos, если используете синхронные запросы, то проверяйте  выполнение условия readyState==4 в цикле с использованием WScript.Sleep(100).