Имя: Пароль:
1C
1С v8
Apache + web-сервис: ошибка при попытке вызова
0 1c-bs
 
23.11.17
14:09
Сабж! База клиент-серверная, а на локальном компьютере я установил расширение для web-сервера и Apache. Опубликовал базу и свой тестовый web-сервис. Файл default.vrd в каталоге нормальный, база и web-сервис описаны нормально. Из браузера по ссылке "localhost" либо по IP адресу база открывается без проблем. При попытке обращения к web-сервису по ссылке "localhost/ws/MyWebService.1cws?wsdl" браузер, подумав, выдаёт ошибку:

1C:Enterprise 8 application error:
Ошибка выполнения запроса
by reason:
server_addr=tcp://s10:1560 descr=10054(0x00002746): Удаленный хост принудительно разорвал существующее подключение. line=1584 file=src\DataExchangeTcpClientImpl.cpp

Эта же ошибка возникает, если обратиться к web-сервису без "?wsdl", и она же возникает если "ошибочно" ввести имя несуществующего web-сервиса.

Куда копать?
1 Asmody
 
23.11.17
14:12
(0) давай содержимое default.vrd
2 1c-bs
 
23.11.17
14:15
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system";
        xmlns:xs="http://www.w3.org/2001/XMLSchema";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        base="/MyBase"
        ib="Srvr=&quot;s10&quot;;Ref=&quot;MyBase&quot;;">
    <httpServices publishByDefault="false">
        <service name="Order"
                rootUrl="Order"
                enable="false"
                reuseSessions="dontuse"
                sessionMaxAge="20"
                poolSize="10"
                poolTimeout="5"/>
    </httpServices>
    <standardOdata enable="true"
            reuseSessions="autouse"
            sessionMaxAge="20"
            poolSize="10"
            poolTimeout="5"/>
    <ws>
        <point name="MyWebService"
                alias="MyWebService.1cws"
                enable="true"
                reuseSessions="autouse"
                sessionMaxAge="20"
                poolSize="10"
                poolTimeout="5"/>
    </ws>
</point>
3 Cyberhawk
 
23.11.17
14:21
Копай в файрвол на хосте сервера приложений
4 Cyberhawk
 
23.11.17
14:22
"База клиент-серверная, а на локальном компьютере" // Так локалхост из браузера и локалхост с сервера приложений - разные адреса
5 Asmody
 
23.11.17
14:28
(0) "В файле-дескрипторе значение атрибута base должно совпадать с относительным путем к виртуальному каталогу (в данном случае – /MyBase)."
6 1c-bs
 
23.11.17
14:38
(5) База открывается без проблем.
7 Cyberhawk
 
23.11.17
14:39
8 1c-bs
 
23.11.17
16:37
Всё получилось, файл веб-сервиса виден. Ошибка была в ссылке - было пропущено имя базы.
localhost/MyBase/ws/MyWebService.1cws?wsdl - браузер нормально выдаёт XML файл веб-сервиса.

Теперь другая проблема - 1С его не видит. ((( При попытке создать WSОпределения выдаёт:
{ВнешняяОбработка.ОтладкаWS.Форма.Форма.Форма(5)}: Ошибка при вызове конструктора (WSОпределения)
ВСОпределения = Новый WSОпределения("http://localhost/MyBase/ws/MyWebService.1cws?wsdl";, "admin", "admin");
по причине:
При создании описания сервиса произошла ошибка. URL сервиса: http://localhost/MyBase/ws/MyWebService.1cws?wsdl
Код ответа сервера: 404

Гугл пользы не принёс. Куда копать?
9 1c-bs
 
23.11.17
17:24
Решено: ни по localhost, ни по имени компьютера видеть веб-сервис не хочет. Только по IP видит!