Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68

Automation server can't create object

10.07.2018, 16:35. Показов 2345. Ответов 13

Студворк — интернет-сервис помощи студентам
Всем привет! Я создал в Майкрософт Визуал Студио App for Office MissingPartEvaluation проект. Этот проект состоит из двух проектов 1. MissingPartEvaluation и 2.MissingPartEvaluationWeb.

Содержание второго проекта я копирую на IIS-Сервер. В первом проекте есть манифест-файл, в котором я поставил

XML
1
<SourceLocation DefaultValue .../>
таким образом, чтобы во время исполнения программа посылала запрос на IIS-Сервер.

Во втором проекте MissingPartEvaluationWeb мне нужен доступ к базой данных, которая в свою очередь находится на другом сервере. Для этой цели я хочу создать ActiveXObject с помощью

JavaScript
1
var connection = new ActiveXObject("ADODB.Connection");
К сожалению, во время исполнения программы это ведёт к следующей ошибке.

Error: Error: Automation server can't create object

Как решить эту проблему?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2018, 16:35
Ответы с готовыми решениями:

VBScript - существование automation object
Прошу прощение за банальный вопрос. Как на VBScript красиво и лаконично проверить, существует ли control c заданным именем - dim...

Object.create()
Увидел в книге object(this),как понял создает обьект из this как метотод Object.create().Так ли это? И чем в данном случае будет отличаться...

Ошибка 'Automation server can't create object'
... в чем проблема. Пишу на JScript. На попытку открыть файл Excel методом new ActiveXObject('Excel.Application'); в ответ мне...

13
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 12:02
codeamateur, а почему activeXObject?
0
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
11.07.2018, 13:42  [ТС]
Применение ActiveXObject рекомендуется в туториалах и в форах. Например, https://stackoverflow.com/ques... ly-quickly. А какие альтернативы вы можете предложить?
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 15:38
Цитата Сообщение от codeamateur Посмотреть сообщение
ActiveXObject рекомендуется в туториалах
Спорный вопрос.
Цитата Сообщение от codeamateur Посмотреть сообщение
А какие альтернативы вы можете предложить?
XMLHttpRequest
1
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
11.07.2018, 17:44  [ТС]
XMLHttpRequest нужен как параметр URL. У меня её нет. Потому что я хочу, чтобы MissingPartEvaluationWeb создала связь с сервером базы данных. А у бaзы данных нет URL, которой я мог бы воспользоваться. Та же самая проблема возникает, если хочешь работать с Ajax Request.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
11.07.2018, 18:11
тогда на iis сделать rest через web api (https://docs.microsoft.com/en-... -angularjs)

ну и соответственно каждый endpoint в rest api будет выдавать json или что там надо
1
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
13.07.2018, 17:42  [ТС]
@Evgen1337 Насколько я понял, ты тоже мне предлагаешь пользоваться XMLHttpRequest. Я это пытался сделать с помощью следующего скрипта.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var url = "https://wosevvt227/ajaxReq/php/getData.php";
        var xhr = new XMLHttpRequest();
        
 
        xhr.open('GET', url, true);
        xhr.responseType = 'json';
        //xhr.setRequestHeader("Authorization", "Basic ***********==");
        xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
        xhr.withCredentials = true;
        xhr.onload = function () {
            var status = xhr.status;
            console.log("Status: " + status);
            if (status === 200) {
                console.log("All ok");
            } else {
                console.log("Houston, we have a problem");
            }
 
            var response = xhr.responseText;
            console.log("Response: " + response);
        };
        xhr.send();
wosevvt227 - это и есть IIS-сервер.

Во время исполнения программы получается следующая ошибка:

SCRIPT7002: XMLHttpRequest: Network error 0x80070005, Access denied
MissingPartSummary.html
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
13.07.2018, 18:06
Лучший ответ Сообщение было отмечено codeamateur как решение

Решение

Цитата Сообщение от codeamateur Посмотреть сообщение
https://wosevvt227/ajaxReq/php/getData.php
Если в браузере открыть эту ссылку вообще что-то выводится?

Цитата Сообщение от codeamateur Посмотреть сообщение
"Access-Control-Allow-Origin", "*"
это должно быть на стороне сервера

если у вас нет требований IE - https://github.com/mdn/fetch-examples/

JavaScript
1
2
3
4
fetch('https://wosevvt227/ajaxReq/php/getData.php').then(r => r.json).then(r => {
// при условии что https://wosevvt227/ajaxReq/php/getData.php выдает валидный json
console.log(r); // здесь будет уже объект
})
Судя по ошибке, вы используете MS Edge, попробуйте хром

Ошибки по MS Edge
https://stackoverflow.com/ques... ft-edge-bu
https://www.sitepoint.com/comm... ejs/277062
1
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
13.07.2018, 18:19  [ТС]
Если в Браузере открыть https://wosevvt227/ajaxReq/php/getData.php, тогда получается как в прикрепленном скриншоте.
Миниатюры
Automation server can't create object  
0
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
13.07.2018, 18:28  [ТС]
К сожалению, если я пробую fetch, я получаю синтактическую ошибку.

Fatal JavaScript-Error in Line 62, Column 73 in https://evdata-t/MissingPartEv... CRIPT1002: Syntax error
Миниатюры
Automation server can't create object  
0
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
13.07.2018, 19:35  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение

Если следовать по первой ссылки, то у меня всё в порядке. Я задаю в Microsoft Edge about:flags. Localhost-Loopback уже был включен.

Вторая ссылка интересней. Тут я попадаю в окно как на скриншоте. Если я нажимаю на Erweitert (это по немецки Advanced), то у меня нет прав добавлять сайты, потому что это может сделать только высокий администратор.

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

SCRIPT7002: XMLHttpRequest: Network error 0x80070005, Access denied
MissingPartSummary.html

Где мне искать настройки для браузера? В Визуал Студио или в Эксель? Как мне вообще определить, какой это Браузер справа в Экселе находится?
Миниатюры
Automation server can't create object  
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
13.07.2018, 21:57
Цитата Сообщение от codeamateur Посмотреть сообщение
Если в Браузере открыть https://wosevvt227/ajaxReq/php/getData.php, тогда получается как в прикрепленном скриншоте.
Здесь написано, что у вас что-то (пустая строка запроса или null) с SQL запросом %) в 15 строке в файле getData.php, в общем не работает у вас getData

В хроме в консоле разработчика, в разделе Сеть, можно посмотреть какие ajax запросы посылались, и какой результат получился, fetch не работает в IE, а в Edge после 14 версии уже работает

Windows не пользуюсь, я на *nix

Добавлено через 3 минуты
И вот вроде бы получилось:
https://stackoverflow.com/ques... 0070005-ac
1
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
16.07.2018, 17:31  [ТС]
Вот тaк выглядит db_connect.php.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Server name: VVP22
// Authentification: Windows authentification
 
//  Datenbase Name: EVT
 
function DB_logon(){
   $serverName = "VVT415"; //serverName\instanceName
 
    // Since UID and PWD are not specified in the $connectionInfo array,
    // The connection will be attempted using Windows Authentication.
    $connectionInfo = array( "Database"=>"EVT");
 
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
 
    if( $conn ) {
        //echo "<br/> Connection established.<br />";
        return $conn;
    }
}
?>
A это getData.php.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
include("./db_connect.php");
 
$db = DB_logon();
 
$arr = array(); //--- Resulting Array
$sql = "    SELECT  TOP 10 [COLUMN_1]
                    ,[COLUMN_2]
                    ,[COLUMN_3]
                    ,[COLUMN_4]
                    ,[COLUMN_5]
                    ,[COLUMN_6]
            FROM [MVK]";
 
$stmt = sqlsrv_query( $db, $sql );
 
//if (sqlsrv_num_rows( $stmt ) > 0) {
    $counter = 0;
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
        $arr[] = array( 'COLUMN_1'                          => htmlentities($row['COLUMN_1'])
                        ,'COLUMN_2'                     => $row['COLUMN_2']
                        ,'COLUMN_3'                     => $row['COLUMN_3']
                        ,'COLUMN_4'                 => $row['COLUMN_4']
                        ,'COLUMN_5'             => $row['COLUMN_5']
                        ,'COLUMN_6'                             => $row['COLUMN_6']
                    );
    }
    sqlsrv_free_stmt( $stmt);
    sqlsrv_close($db);
//}
 
echo json_encode($arr);
?>
Если getData.php не работает, тогда нужно найти, где там ошибка. Потом перенести getData.php в Javascript и в новом Javascript файле исправить эту ошибку. Пусть этот новый Javascript файл называется DbConnect.js. Это возможно сделать, так как оба getData.php и DbConnect.js находяться на одном и том же IIS - сервере wosevvt227. Единственная разница, это то, что getData.php находится в папке \\wosevvt227\c$\inetpub\wwwroot\bb\ajaxR eq\php\, a DbConnect.js будет находиться в папке \\wosevvt227\c$\inetpub\wwwroot\evdata-t\MissingPartEvaluationWeb\App\Home\.

Сам файл getData.php я изменять не могу, потому что он принадлежит другому.

Цитата Сообщение от Evgen1337 Посмотреть сообщение
В хроме в консоле разработчика, в разделе Сеть, можно посмотреть какие ajax запросы посылались, и какой результат получился, fetch не работает в IE, а в Edge после 14 версии уже работает
Это от браузера не зависит. Так как применение fetch ведёт к синтактической ошибки, не хватает Javascript библиотеки для того, чтобы fetch работало.

Цитата Сообщение от Evgen1337 Посмотреть сообщение
И вот вроде бы получилось:
https://stackoverflow.com/ques... 0070005-ac
Применение CORS не помогает. Это ведёт к той же самой ошибке

SCRIPT7002: XMLHttpRequest: Network error 0x80070005, Access denied
MissingPartSummary.html
0
9 / 9 / 8
Регистрация: 10.01.2016
Сообщений: 68
17.07.2018, 19:45  [ТС]
Мне удалось решить данную проблему, после того, когда я перевёл "Access-Control-Allow-Origin", "*" на сторону сервера, как это советовал Evgen1337 в восьмом сообщении.

Я написал новый файл getDataAllowOrigin.php.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
include("./db_connect.php");
header('Access-Control-Allow-Origin: https://evdata-t');
header('Access-Control-Allow-Credentials: true');
 
$db = DB_logon();
 
$arr = array(); //--- Resulting Array
$sql = "    SELECT  TOP 10 [COLUMN_1]
                    ,[COLUMN_2]
                    ,[COLUMN_3]
                    ,[COLUMN_4]
                    ,[COLUMN_5]
                    ,[COLUMN_6]
            FROM [MVK]";
 
$stmt = sqlsrv_query( $db, $sql );
 
//if (sqlsrv_num_rows( $stmt ) > 0) {
    $counter = 0;
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
        $arr[] = array( 'COLUMN_1'                          => htmlentities($row['COLUMN_1'])
                        ,'COLUMN_2'                     => $row['COLUMN_2']
                        ,'COLUMN_3'                     => $row['COLUMN_3']
                        ,'COLUMN_4'                 => $row['COLUMN_4']
                        ,'COLUMN_5'             => $row['COLUMN_5']
                        ,'COLUMN_6'                             => $row['COLUMN_6']
                    );
    }
    sqlsrv_free_stmt( $stmt);
    sqlsrv_close($db);
//}
 
echo json_encode($arr);
?>
После этого поправил мой Javascript код.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var url = "https://wosevvt227/ajaxReq/php/getDataAllowOrigin.php";
var xhr = new XMLHttpRequest();
        
xhr.open('GET', url, true);
xhr.responseType = 'json';
xhr.withCredentials = true;
xhr.onload = function () {
            var status = xhr.status;
            console.log("Status: " + status);
            if (status === 200) {
                console.log("All ok");
            } else {
                console.log("Houston, we have a problem");
            }
 
            var response = xhr.responseText;
            console.log("Response: " + response);
        };
xhr.send();
Теперь Access Denied ошибки больше нет. Вот так выглядит Javascript-Konsole.

Status: 200
All ok
Response: <br />
<b>Warning</b>: sqlsrv_query() expects parameter 1 to be resource, null given in <b>C:\inetpub\wwwroot\bb\ajaxReq\php\get DataAllowO rigin.php</b> on line <b>17</b><br />
<br />
<b>Warning</b>: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in <b>C:\inetpub\wwwroot\bb\ajaxReq\php\get DataAllowO rigin.php</b> on line <b>21</b><br />
<br />
<b>Warning</b>: sqlsrv_free_stmt() expects parameter 1 to be resource, boolean given in <b>C:\inetpub\wwwroot\bb\ajaxReq\php\get DataAllowO rigin.php</b> on line <b>30</b><br />
<br />
<b>Warning</b>: sqlsrv_close() expects parameter 1 to be resource, null given in <b>C:\inetpub\wwwroot\bb\ajaxReq\php\get DataAllowO rigin.php</b> on line <b>31</b><br />
[]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.07.2018, 19:45
Помогаю со студенческими работами здесь

Cannot Create Automation Object
Приветствую всех, господа! Очень сложно было открыть эту статью, но уже долгое время не могу решить проблему. На домине запускается...

Cannot Create Automation Object
Всем привет. Знаю, что ком-объекты зло, но сейчас нет выбора. Проблема такая: Нужно запускать агент RunOnServer, который используя...

Cannot Create Automation Object
Всем привет! Пытаюсь доступиться к xls файлу через ADO. Windows 2003 Server 64dit . Офиса нет. Пи попытке создания объекта...

COM object/Automation
Всем привет и хорошего настроения, экспериментирую тут с объектами автоматизации, а именно хочу не длл сделать, а exe, запущен ехе -...

Method 'cell' not supported by automation object
добрый вечер. не понимаю в чем ошибка ... var Form4: TForm4; MRow,MCol:integer; table:variant; implementation {$R...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru