Ошибка при публикации 1с web

Мы описывали как настраивать веб-публикацию на IIS в инструкции.

Но после настройки веб-публикации при подключении к базе может возникать ошибка “Ошибка HTTP 500.0 — Internal Server Error”.

Если модуль был установлен с 32-битного клиента, то требуется это указать в пуле приложений. Для этого мы делаем следующую настройку:

  • Заходим в Панель управления → Администрирование → Диспетчер служб IIS.
  • Выбираем Пулы приложения которые задействованы в веб-публикации, в нашем случае DefaultAppPool.
  • Нажимаем ПКМ Дополнительные параметры.
  • В строке Разрешены 32-разрядные приложения мы указываем True как на Рисунке 1.
  • Нажимаем ОК.

главная страница

Рисунок 1 — Дополнительные параметры пула приложений

Если не сработало, есть следующие возможные решения:

  1. Убедитесь, что разрешения NTFS для файла web.config верны и обеспечивают доступ к учетной записи компьютера веб-сервера. Заходим в директорию, где размещена публикация (по умолчанию — C:inetpubwwwrootИМЯ_БАЗЫ). Нажимаем ПКМ на web.config → Свойства → Безопасность. Убедитесь в том, что у группы IIS_USERS есть права на чтение, выполнение, запись и изменение файла. Если нет — нажмите кнопку Изменить, в появившемся окне Добавить → Дополнительно и найдите в списке IIS_USERS. Добавьте эту группу и назначьте соответствующие права.
  2. Проверьте журналы событий, чтобы посмотреть, была ли зафиксирована какая-либо дополнительная информация. Открываем Выполнить (ПКМ на кнопку меню пуск или сочетанием клавиш Win+R), вводим “eventvwr.msc”, нажимаем Enter. Возможно, журнал даст подсказку какой компонент может сбоить.
  3. Переустановите компонент IIS на сервере. В диспетчере серверов удалите роль Веб-сервера IIS, перезагрузите сервер, а затем установите заново через оснастку Добавить роли и компоненты.
  4. Установите компонент расширения .NET, если запрос сопоставлен управляемому обработчику.

В Windows Server 2012 и младше: заходим в Диспетчер серверов → Добавить роли и компоненты → Роли сервера → Веб-сервер (IIS) → Веб-сервер → Разработка приложений → Расширяемость .NET. Далее идём далее по указаниям системы.

После применения настроек, мы можем подключаться к настроенной веб-публикации без ошибок.

Нужна готовая настройка веб-доступа к 1С? Попробуйте наш сервер 1С в аренду, в услугу включены все настройки и обслуживание.

Не получается опубликовать веб-сервис

Я
   Vir_Rus

21.08.19 — 14:32

Добрый день!

Не получается опубликовать веб сервис. Точнее обратиться к нему через браузер — пишет ошибка 404 (страница не найдена).

Самописная конфигурация, платформа 1С 8.3. Веб сервер Апаче 2.2. База 1с находится на одном сервере, сервер 1с на другом, сервер апаче на третьем.

При публикации веб сервиса через: Администрирование — Публикация на веб-сервисе… — создается в каталоге файл default.vrd.

Пытаюсь в браузере (с сервера апаче) перейти по адресу «http://localhost/Имя_указанное_при_публикации/ws/имя_сервиса?wsdl»; — выдает ошибку 404.

Не понимаю уже в какую сторону копать. Перерыл весь интернет, из подобных проблем — описано только в одной теме (http://www.bizkit.ru/2013/05/24/1722/). Но она не помогла…

Есть у кого какие идеи, в каком направлении искать?

Спасибо

   Vir_Rus

1 — 21.08.19 — 14:45

Есть в браузере зайти просто в локалхост, он видит только этот единственный файл, его можно посмотреть — содержание ниже:

<?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=»/Obmen»

        ib=»Srvr=&quot;10.194.11.201&quot;;Ref=&quot;gdctest2&quot;;»>

    <ws publishExtensionsByDefault=»true»>

        <point name=»Obmen»

                alias=»ws1.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

    </ws>

    <standardOdata enable=»true»

            reuseSessions=»autouse»

            sessionMaxAge=»20″

            poolSize=»10″

            poolTimeout=»5″/>

</point>

   НЕА123

2 — 21.08.19 — 14:50

ХЗ.

м.б. конфигуратор при публикации был запущен не под администратором

   Vir_Rus

3 — 21.08.19 — 14:57

Если я не ошибаюсь, то не получится опубликовать не из под админа…

Дело не в этом.

Может нужны какие-то дополнительные манипуляции с апачем?

   Жан Пердежон

4 — 21.08.19 — 15:23

(3) ну так почитал бы гайды сначала, с IIS тоже манипуляции могут потребоваться

   Vir_Rus

5 — 22.08.19 — 12:41

Всем привет!

Была проблема в сервере. Установил Апаче на свой ПК и с него все развернул и запустил. Заработало сразу.

Но при попытке выполнить процедуру веб сервиса вываливается ошибка:»{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

1C:Enterprise 8 application error:Ошибка при разборе дескриптора виртуальных ресурсовby reason: Файл не обнаружен ‘C:wwwdefault.vrd’. 2(0x00000002): Не удается найти указанный файл.»

Почему в ошибке указан файл в папке C:www? я его ни где не прописывал…

Решил изменить в конфиге апача директорию документов как раз на www, чтобы 1с создала там нужный файл.

Ошибка не пропала. Пробовал и сервер из под админа запускать, права на папку есть у всех (в том числе и у админа, от которого пробовал запускать сервер).

   Vir_Rus

6 — 22.08.19 — 12:46

В базе веб сервиса в процедуре следующий код:

Функция Приветствие(Параметр1)

    Возврат Неопределено;

КонецФункции

В другой базе добавил ws-ссылку на веб сервис.

Пытаюсь подключиться:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси(«Obmen»,»Hello»,»HelloSoap»);

    Соединение.Пользователь = «****»;

    Соединение.Пароль = «****»;

    Попытка

        Ответ = Соединение.Приветствие(«132»);

        Сообщить(Ответ);

    Исключение

        Сообщить(ОписаниеОшибки());

    КонецПопытки;

в результате ошибка.

Пробовал и динамически создавать подключение:

УРЛ = «http://localhost:80/Hello/ws/ws2.1cws?wsdl»;;

    Пространство = «Obmen»;

    ИмяСервиса = «Hello»;

    ИмяТочкиПодключения = «HelloSoap»;

    
    Попытка

        Определение = новый WSОпределения(УРЛ,,,,20);

        Соединение = Новый WSПрокси(Определение,Пространство,ИмяСервиса,ИмяТочкиПодключения,,150);

    Исключение

        Сообщить(ОписаниеОшибки());

        Возврат;

    КонецПопытки;

Получаю следующую ошибку:

{ОбщаяФорма.ФормаОбмена.Форма(15)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. URL сервиса: http://localhost:80/Hello/ws/ws2.1cws?wsdl

Код ответа сервера: 500

   ptiz

7 — 22.08.19 — 13:06

(5) «я его ни где не прописывал» — ищи в файле настроек апача httpd.conf

   Vir_Rus

8 — 22.08.19 — 13:17

(7) в том то и дело — там даже намека нет на эту папку, точнее не было.

Так как я потом сам поменял, чтобы доументы там хранились, но это не помогло.

Сам файл лежит в указанном пути, но ошибка не исчезает.

   DrWatson

9 — 22.08.19 — 13:18

(5) А разве это сообщение не значит, что с настройками всё хорошо, веб-сервис вызывается. Но 1С не нравится твоя функция Приветствие(). Может стоит убрать у неё параметр?

   Vir_Rus

10 — 22.08.19 — 13:28

(9) Убирал, результат тот же

   ptiz

11 — 22.08.19 — 13:49

(8) Покажи, что у тебя в файле httpd.conf в блоке после:

# 1c publication

   Vir_Rus

12 — 22.08.19 — 13:53

На всякий случай все после 1с publication выложу:

# 1c publication

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

    AllowOverride All

    Options None

    Order allow,deny

    Allow from all

    SetHandler 1c-application

    ManagedApplicationDescriptor «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd»

</Directory>

#

# DefaultType: the default MIME type the server will use for a document

# if it cannot otherwise determine one, such as from filename extensions.

# If your server contains mostly text or HTML documents, «text/plain» is

# a good value.  If most of your content is binary, such as applications

# or images, you may want to use «application/octet-stream» instead to

# keep browsers from trying to display binary files as though they are

# text.

#

DefaultType text/plain

<IfModule mime_module>

    #

    # TypesConfig points to the file containing the list of mappings from

    # filename extension to MIME-type.

    #

    TypesConfig conf/mime.types

    #

    # AddType allows you to add to or override the MIME configuration

    # file specified in TypesConfig for specific file types.

    #

    #AddType application/x-gzip .tgz

    #

    # AddEncoding allows you to have certain browsers uncompress

    # information on the fly. Note: Not all browsers support this.

    #

    #AddEncoding x-compress .Z

    #AddEncoding x-gzip .gz .tgz

    #

    # If the AddEncoding directives above are commented-out, then you

    # probably should define those extensions to indicate media types:

    #

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    #

    # AddHandler allows you to map certain file extensions to «handlers»:

    # actions unrelated to filetype. These can be either built into the server

    # or added with the Action directive (see below)

    #

    # To use CGI scripts outside of ScriptAliased directories:

    # (You will also need to add «ExecCGI» to the «Options» directive.)

    #

    #AddHandler cgi-script .cgi

    # For type maps (negotiated resources):

    #AddHandler type-map var

    #

    # Filters allow you to process content before it is sent to the client.

    #

    # To parse .shtml files for server-side includes (SSI):

    # (You will also need to add «Includes» to the «Options» directive.)

    #

    #AddType text/html .shtml

    #AddOutputFilter INCLUDES .shtml

</IfModule>

#

# The mod_mime_magic module allows the server to use various hints from the

# contents of the file itself to determine its type.  The MIMEMagicFile

# directive tells the module where the hint definitions are located.

#

#MIMEMagicFile conf/magic

#

# Customizable error responses come in three flavors:

# 1) plain text 2) local redirects 3) external redirects

#

# Some examples:

#ErrorDocument 500 «The server made a boo boo.»

#ErrorDocument 404 /missing.html

#ErrorDocument 404 «/cgi-bin/missing_handler.pl»

#ErrorDocument 402 http://localhost/subscription_info.html

#

#

# MaxRanges: Maximum number of Ranges in a request before

# returning the entire resource, or one of the special

# values ‘default’, ‘none’ or ‘unlimited’.

# Default setting is to accept 200 Ranges.

#MaxRanges unlimited

#

# EnableMMAP and EnableSendfile: On systems that support it,

# memory-mapping or the sendfile syscall is used to deliver

# files.  This usually improves server performance, but must

# be turned off when serving from networked-mounted

# filesystems or if support for these functions is otherwise

# broken on your system.

#

#EnableMMAP off

#EnableSendfile off

# Supplemental configuration

#

# The configuration files in the conf/extra/ directory can be

# included to add extra features or to modify the default configuration of

# the server, or you may simply copy their contents here and change as

# necessary.

# Server-pool management (MPM specific)

#Include conf/extra/httpd-mpm.conf

# Multi-language error messages

#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings

#Include conf/extra/httpd-autoindex.conf

# Language settings

#Include conf/extra/httpd-languages.conf

# User home directories

#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration

#Include conf/extra/httpd-info.conf

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual

#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)

#Include conf/extra/httpd-dav.conf

# Various default settings

#Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections

#Include conf/extra/httpd-ssl.conf

#

# Note: The following must must be present to support

#       starting without SSL on platforms with no /dev/random equivalent

#       but a statically compiled-in mod_ssl.

#

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

   ptiz

13 — 22.08.19 — 13:59

(12) Теперь проверь — всё ли правильно написано в этом файле: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd

   Vir_Rus

14 — 22.08.19 — 14:06

Извиняюсь, не знаю как тут прикреплять файлы/изображения. Выложу весь текст файла.

This XML file does not appear to have any style information associated with it. The document tree is shown below.

<definitions xmlns=»http://schemas.xmlsoap.org/wsdl/»; xmlns:soap12bind=»http://schemas.xmlsoap.org/wsdl/soap12/»; xmlns:soapbind=»http://schemas.xmlsoap.org/wsdl/soap/»; xmlns:tns=»Obmen» xmlns:wsp=»http://schemas.xmlsoap.org/ws/2004/09/policy»; xmlns:wsu=»http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd»; xmlns:xsd=»http://www.w3.org/2001/XMLSchema»; xmlns:xsd1=»Obmen» name=»Hello» targetNamespace=»Obmen»>

<types>

<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»; xmlns:xs1=»Obmen» targetNamespace=»Obmen» elementFormDefault=»qualified»>

<xs:element name=»Приветствие»>

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name=»ПриветствиеResponse»>

<xs:complexType>

<xs:sequence>

<xs:element name=»return» type=»xs:all» nillable=»true»/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

</types>

<message name=»ПриветствиеRequestMessage»>

<part name=»parameters» element=»tns:Приветствие»/>

</message>

<message name=»ПриветствиеResponseMessage»>

<part name=»parameters» element=»tns:ПриветствиеResponse»/>

</message>

<portType name=»HelloPortType»>

<operation name=»Приветствие»>

<input message=»tns:ПриветствиеRequestMessage»/>

<output message=»tns:ПриветствиеResponseMessage»/>

</operation>

</portType>

<binding name=»HelloSoapBinding» type=»tns:HelloPortType»>

<soapbind:binding style=»document» transport=»http://schemas.xmlsoap.org/soap/http»/>;

<operation name=»Приветствие»>

<soapbind:operation style=»document» soapAction=»Obmen#Hello:Приветствие»/>

<input>

<soapbind:body use=»literal»/>

</input>

<output>

<soapbind:body use=»literal»/>

</output>

</operation>

</binding>

<binding name=»HelloSoap12Binding» type=»tns:HelloPortType»>

<soap12bind:binding style=»document» transport=»http://schemas.xmlsoap.org/soap/http»/>;

<operation name=»Приветствие»>

<soap12bind:operation style=»document» soapAction=»Obmen#Hello:Приветствие»/>

<input>

<soap12bind:body use=»literal»/>

</input>

<output>

<soap12bind:body use=»literal»/>

</output>

</operation>

</binding>

<service name=»Hello»>

<port name=»HelloSoap» binding=»tns:HelloSoapBinding»>

<documentation>

<wsi:Claim xmlns:wsi=»http://ws-i.org/schemas/conformanceClaim/»; conformsTo=»http://ws-i.org/profiles/basic/1.1″/>;

</documentation>

<soapbind:address location=»http://localhost/Hello/ws/Hello»/>;

</port>

<port name=»HelloSoap12″ binding=»tns:HelloSoap12Binding»>

<soap12bind:address location=»http://localhost/Hello/ws/Hello»/>;

</port>

</service>

</definitions>

   ptiz

15 — 22.08.19 — 14:16

(14) Это ответ веб-сервиса, значит — работает.

   Йохохо

16 — 22.08.19 — 14:18

(15) это копипаст из блокнота)

   ptiz

17 — 22.08.19 — 14:19

(14) У тебя «Имя файла публикации» заполнено в свойстве веб-сервиса?

   ptiz

18 — 22.08.19 — 14:20

(14) И покажи содержимое файла default.vrd

   Vir_Rus

19 — 22.08.19 — 15:02

(17) заполнено (18)

<?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=»/Hello»

        ib=»Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;»>

    <httpServices publishByDefault=»false»/>

    <standardOdata enable=»true»

            reuseSessions=»autouse»

            sessionMaxAge=»20″

            poolSize=»10″

            poolTimeout=»5″/>

    <ws>

        <point name=»Obmen»

                alias=»ws1.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

        <point name=»Hello»

                alias=»ws2.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

    </ws>

</point>

   ptiz

20 — 22.08.19 — 15:22

   Йохохо

21 — 22.08.19 — 15:27

ib=»Srvr=&quot;sd-s-vm02&quot;

попробуйте по айпи

   Йохохо

22 — 22.08.19 — 15:29

ib=»Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;» странно выглядит

ib=»Srvr=sd-s-vm02;Ref=gdctest2;»

   Vir_Rus

23 — 22.08.19 — 15:32

(20) Открывается

http://localhost:80/Hello если так — то доступ к базе будет из браузера

   Vir_Rus

24 — 22.08.19 — 15:35

(21) т.е. попробовать отредактировать этот файл? и написать там айпи вместо названия?

   Vir_Rus

25 — 22.08.19 — 15:36

(22) Во всяком случае, если бы дело было в этом — я бы не смог зайти в базу из браузера. Так что не думаю что проблема тут

   Йохохо

26 — 22.08.19 — 15:39

(23) открывается это именно текст из (24) виден в браузере?

   Vir_Rus

27 — 22.08.19 — 15:45

(26) Виден текст из (14) если из браузера переходить http://localhost/Hello/ws/Hello?wsdl

А (19) это содержимое файла default.vrd

   ptiz

28 — 22.08.19 — 15:57

(27) Команду: новый WSОпределения() выполняешь в какой базе? Файловая? Серверная? С какого компьютера?

А то ведь localhost будет доступен только с того компа, где апач.

   Vir_Rus

29 — 22.08.19 — 16:05

(28) новый WSОпределения() выполняю на своем ПК, на нем же стоит Апач. Базы серверные.

При выполнении данной команды получаю ошибку:

{ОбщаяФорма.ФормаОбмена.Форма(15)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. URL сервиса: http://localhost:80/Hello/ws/ws2.1cws?wsdl

Код ответа сервера: 500

У меня веб сервис основной забы подключен в ws-ссылки в «мобильной» базе. Из нее сразу создаю wsПрокси:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси(«Obmen»,»Hello»,»HelloSoap»);

И получаю ошибку:

«{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

1C:Enterprise 8 application error:Ошибка при разборе дескриптора виртуальных ресурсовby reason: Файл не обнаружен ‘C:wwwdefault.vrd’. 2(0x00000002): Не удается найти указанный файл.»

   Vir_Rus

30 — 23.08.19 — 08:53

Возможно нашел причину возникновения ошибки…

Сейчас ради эксперимента выключил сервер апач и попробовал выполнить веб сервис. получил точно такую же ошибку.

Получается из 1с не виден сервер апача…

Потому что из браузера все работает нормально.

В чем может быть ошибка? Какие-нибудь права 1с-ке нужны?

   ptiz

31 — 23.08.19 — 09:03

(29) Замени наконец localhost на нормальное имя компьютера, или (ещё лучше) — IP-адрес.

   Vir_Rus

32 — 23.08.19 — 09:07

(31) Уже заменил на локальный адрес 127.0.0.1 — не помогло

   Василий Алибабаевич

33 — 23.08.19 — 09:08

(12) Иттить колотить….

Вы на полном серьезе считаете нормальным вот такой путь: Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>?

   Vir_Rus

34 — 23.08.19 — 09:08

я же говорю дело не в этом. я получаю одну и ту же ошибку когда апач запущен и когда он выключен. Следовательно по каким то причинам 1с не может достучаться до сервера апачЭ, на котором находится веб сервис…

   Vir_Rus

35 — 23.08.19 — 09:09

(33) переделал путь на c:/www/ — тут уже лежит веб сервис — результат не изменился…

   Василий Алибабаевич

36 — 23.08.19 — 09:10

+ (33) Тем более с учетом того, что в ошибке указан путь: ‘C:wwwdefault.vrd’ ЦЫ(28) ???

   Василий Алибабаевич

37 — 23.08.19 — 09:10

(35) Переделал как? Что изменял?

   ДенисЧ

38 — 23.08.19 — 09:11

А у тебя Апачу разрешено слушать какой-то адрес, кроме локохоста?

   Vir_Rus

39 — 23.08.19 — 09:12

(37) папку публикации веб сервиса и в конфиге апача строку documentsdirectory — вроде так она называется на путь «c:/www»

   ПускинАС

40 — 23.08.19 — 09:12

(1) Всегда нравилось, как умно работает определитель кода. Прямо в стиле 1с))) глаза рэжет ))) куль веб

   ПускинАС

41 — 23.08.19 — 09:16

(0) Поставь апач нормально, нормальный, и будет тебе ок.

   Василий Алибабаевич

42 — 23.08.19 — 09:20

(39) Вообще корень сайта в файле конфигурации прописывается в «DocumentRoot»

При этом :

1. Пути должны указываться в в стиле Линукса

не c:www, а c://www

2. Там не должно быть кириллицы и спецсимволов.

   Vir_Rus

43 — 23.08.19 — 09:20

(41) Так если б знал какой правильный и как правильно — ужеб давно сделал. а так делаю по видеоуроку или по статье какой-нибудь. все один в один, ну разве что только версии апача могут отличаться

   Василий Алибабаевич

44 — 23.08.19 — 09:25

+ (42)

Каталог с публикацией 1с (*.vrd) должен быть внутри того, что указано в DocumentRoot.

в LoadModule должен быть указан корректный путь к wsap22.dll или wsap24.dll (зависит какой апач)

Публикация должна быть указана в файле httpd.conf примерно так :

# 1c publication

Alias «/Prdp» «D:/###/Prdp/»

<Directory «D:/###/Prdp/»>

    AllowOverride All

    Options None

    Require all granted

    SetHandler 1c-application

    ManagedApplicationDescriptor «D:/###/Prdp/default.vrd»

</Directory>

после всех корректировок httpd апач должен быть перезагружен.

   Василий Алибабаевич

45 — 23.08.19 — 09:28

+(44) Если в httpd неправильно указан путь к wsap*.dll или юзеру, от имени которого запускается апач недостаточно прав на wsap*.dll служба не запустится. В журнале регистрации событий винды будет запись об ошибке.

Проверяй.

   Vir_Rus

46 — 23.08.19 — 09:49

(45) по логике, если из браузера все работает — значит все настройки сервера и публикация веб сервиса выполнены корректно. или не факт?

Есть факт, то почему из 1с не получается достучаться до апача?

   ptiz

47 — 23.08.19 — 09:51

(32) Где заменил? В создании ws-определения? И что будет делать 1С, если этот код запустится на сервере? К какому апачу стучаться?

   Василий Алибабаевич

48 — 23.08.19 — 09:51

(46) «если из браузера все работает» А это так?

И как в браузере можно определить работоспособность сервиса? Оно же в браузер ничего не пишет.

Удалось открыть файл? Ну так видимо настройка прав позволяет. Запиши туда же обычный текстовый файл и попробуй открыть из браузера.

   ПускинАС

49 — 23.08.19 — 09:54

https://www.apachehaus.com/cgi-bin/download.plx

вот норм.

распаковываешь с:Apache24

в конфиге пишешь Define SRVROOT «C:/Apache24» (38 строка примерно) httpd.conf

переходишь в

c:Apache24binhttpd.exe -k install (установка сервиса)

c:Apache24binhttpd.exe -к start (запуск)

и все ЁБА ! ! ) ) )

   ДенисЧ

50 — 23.08.19 — 09:56

(46) Потому что у тебя апач и сервер 1с лежат на разных компах. А в апаче не разрешено слушать что-то другое, кроме лохоста.

   ПускинАС

51 — 23.08.19 — 10:02

(50) кто тебе такую ересь сказал?

   ДенисЧ

52 — 23.08.19 — 10:24

(51) Покажи мне в конфиге Апача директиву Listen

Её там нет.

   ПускинАС

53 — 23.08.19 — 10:27

   Василий Алибабаевич

54 — 23.08.19 — 10:27

(52) Она там есть. Вот пример :

#

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, instead of the default. See also the <VirtualHost>

# directive.

#

# Change this to Listen on specific IP addresses as shown below to

# prevent Apache from glomming onto all bound IP addresses.

#

#Listen 12.34.56.78:80

Listen 81

Только оно не зато отвечает куда может ходить подключаемый модуль. Даже подключаемых пыхпых может грузить свои инклюды из-за пределов документрут.

   ПускинАС

55 — 23.08.19 — 10:28

откуда вы все вылезли… из windows 95 ? )))

   ДенисЧ

56 — 23.08.19 — 10:29

(53) Это порт.

   ДенисЧ

57 — 23.08.19 — 10:30

А по дефолту апач слушает только локохост

   Василий Алибабаевич

58 — 23.08.19 — 10:34

(57) Апач слушает порт. Откуда оно там возьмется — ему не важно.

ИМХАется мне ты спутал расположение ДокументРута. Вот за него не скажу. Хотя у меня написано так :

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

Настаиваю на : «but symbolic links and aliases may be used to point to other locations.»

   Василий Алибабаевич

59 — 23.08.19 — 10:36

В общем у ТС проблема не в том, где расположен ДокументРут, а в том что ТС этого и сам не знает.

   Йохохо

60 — 23.08.19 — 10:45

(46) откати все конфиги и сделай с нуля в отдельную папку

(59) на документрут плевать т.к.

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

   Йохохо

61 — 23.08.19 — 10:46

кстати под виндой слеша вроде не должно быть в конце Apache2.2/htdocs

   Vir_Rus

62 — 23.08.19 — 10:48

Все заново сделал но уже на сервере где стоит сервер 1с. заработало.

Всем спасибо

   Йохохо

63 — 23.08.19 — 10:49

так не интересно(

  

ptiz

64 — 23.08.19 — 12:16

(62) Ну правильно: локалхост с сервера 1С теперь стучится туда же, где апач (на нем же) :)

Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок.

Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия).

В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux  без графической оболочки,  то публикация через привычное окно конфигуратора становится невозможной.

Аналогичная ситуация возникает, когда на этой машине отсутствует клиент 1С:Предприятия и, следовательно, становится невозможным запуск конфигуратора.

О том, как осуществить публикацию базы можно почитать тут: Публикация 1С на Веб сервере Linux.

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

Итак, что делать, если не получается опубликовать веб-сервис 1С?

Список возможных ошибок:

1. Job for httpd.service failed because the control process exited with error code.

2. Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»

3. Ошибка «Invalid command ‘ManagedApplicationDescriptor’»

4. Не запускается 1С: Предприятие при подключении через веб сервер Linux. «Selinux policy enabled.»

5. Ошибка HTTP 404 Not found

6. Ошибка Service not found при обращении к веб-сервису 1С:Предприятия

Job for httpd.service failed because the control process exited with error code.

Полный текст ошибки:

Job for httpd.service failed because the control process exited with error code. See «systemctl status httpd.service» and «journalctl -xe» for details.

Описание ошибки:

После выполнения всех настроек файлов публикации базы или сервиса 1С:Предприятия. При попытке запустить веб-сервер — выдается ошибка и веб-сервер не запускается.

Данное сообщение говорит о том, что процесс был завершен  с ошибкой, более подробную информацию о которой можно получить в журнале. Как это сделать — описано далее.

Решение:

Необходимо проанализировать более подробное описание ошибки. Его можно получить следующим образом.

В результате выполнения команды будет выдано более подробное сообщение об ошибке.

Разбор, которых приведен в статье далее.

Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»

Полный текст ошибки:

сен 16 11:41:54 1s-on-web-1 httpd[6596]: AH00526: Syntax error on line 6 of /etc/httpd/e1c/base.conf:

сен 16 11:41:54 1s-on-web-1 httpd[6596]: Invalid command ‘forceHandler’, perhaps misspelled or defined by a module not included in the server configuration

Описание ошибки:

Ошибка связана с ошибками или «опечатками» в файле настроек base.conf. Иными словами, в данном файле есть некорректные строки, которые новичку бывает сходу не так просто найти.

Решение:

Исправить ошибку в строке сообщения. В данном случае допущена опечатка в имени команды.

vim /etc/httpd/e1c/base.conf

Пример ошибочной строки. Команды forceHandler  — на самом деле не существует :

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

   AllowOverride All

   Options None

   Require all granted

   forceHandler 1c-application

   ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

Исправим файл. Укажем корректное наименвоание команды — SetHandler:

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

   AllowOverride All

   Options None

   Require all granted

   SetHandler 1c-application

   ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

Ошибка «Invalid command ‘ManagedApplicationDescriptor’»

Полный текст ошибки:

Начат процесс запуска юнита httpd.service.

сен 16 12:18:11 1s-on-web-1 httpd[9857]: AH00526: Syntax error on line 7 of /etc/httpd/e1c/base.conf:

сен 16 12:18:11 1s-on-web-1 httpd[9857]: Invalid command ‘ManagedApplicationDescriptor’, perhaps misspelled or defined by a module not included in the server configuration

сен 16 12:18:11 1s-on-web-1 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE

сен 16 12:18:11 1s-on-web-1 systemd[1]: Failed to start The Apache HTTP Server.

— Subject: Ошибка юнита httpd.service

Описание ошибки:

Ошибка связана с тем, что в файле httpd.conf отсутствует ссылка на модуль веб-расширения 1С:Предприятия, которая должна указываться в «LoadModule _1cws_module».

В этом можно убедиться выполнив команду.

cat /etc/httpd/conf/httpd.conf | grep wsap

Если результат пустой, то строка вида «/opt/1C/v8.3/x86_64/wsap24.so», отсутвтует  —  модуль не прописан.

Решение:

Отредактировать конфигурационный файл httpd.conf

vim /etc/httpd/conf/httpd.conf

Добавить строку:

LoadModule _1cws_module «/opt/1C/v8.3/x86_64/wsap24.so»

Не запускается 1С: Предприятие при подключении через веб сервер, Linux. «Selinux policy enabled.»

Полный текст ошибки:

cat /var/log/httpd/error_log

Описание проблемы:

При попытке запустить клиента 1С:Предприятие через веб-сервер (строка подключения вида: «ws=»http://1s-on-server/bast»;») —  сеанс не запускается.

Но при этом, таже самая база — запускается успешно при прямом подключении к серверу 1С:Предприятия (строка подключения вида Srvr=»1s-on-server»;Ref=»base»;).

Решение:

1. Убедиться, что selinux, действительно, работает.

Если видим Enforcing, значит переходим к следующему пункту.

2. Отключить selinux:

3. Проверить, что настройка выполнена.

Permissive – включен, но ничего не запрещает.

Enforcing – включен, работает, и запрещает.

Ошибка HTTP 404 Not found

<strong>Пример полного текста ошибки:</strong>

404 Error in Request. HTTP Status: 404 Not found

<img class=«wp-image-809» src=«https://1s-on.ru/wp-content/uploads/2020/12/post-802-image-3.jpeg» />

HTTP 404 Not found

The webpage cannot be found

Описание:

После публикации базы на сервере, при попытке перейти по веб-ссылке базы из браузера– выдается ошибка.

Проще говоря, браузер сообщает, что не нашел такой папки публикации на сервере.

Решение:

Ошибка часто связана с неправильным вводом имени базы/папки публикации.

Необходимо проверить имена папок с конфигурационными файлами базы, а также имена базы и папок в самих конфигурационных файлах.

Проверить имена публикации базы(выделено):

1. Конфигурационный файл *.conf:

vim /etc/httpd/e1c/base.conf

следующего содержания:

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

AllowOverride All

Options None

Require all granted

SetHandler 1c-application

ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

2. Конфигурационный файл публикации базы *.vrd

vim /var/www/e1c/base/default.vrd

следующего содержания:

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

<?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=»/base»

ib=»Srvr=1s-on-1c-1; Ref=base»>

<ws>

<point name=»ws_1s_on_1″

alias=»ws_1s_on_1.1cws»

enable=»true»/>

<point name=»ws_1s_on_2″

alias=»ws_1s_on_2.1cws»

enable=»true»/>

</ws>

</point>

point name – имя сервиса в конфигураторе;

alias – это имя ссылки, по которой будем обращаться к веб-сервису.

Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса: 1s-on-1c-1/base/ws/ws_1s_on_1.1cws

Ошибка Service not found при обращении к веб-сервису 1С:Предприятия

Пример полного текста ошибки:

Описание:

При обращении к веб-сервису, после авторизации(если таковая требуется) – возникает ошибка, что сервис не найден. То есть публикация самой базы отвечает, но веб-сервиса нет или он не отвечает.

Ошибка часто связана с ошибками в именах самого веб-сервиса или его ссылки.

Решение:

Проверить имена веб-сервисов и ссылок на них.

    1. Конфигурационный файл публикации базы *.vrd

vim /var/www/e1c/base/default.vrd

следующего содержания:

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

<?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=»/base»

ib=»Srvr=1s-on-1c-1; Ref=base»>

<ws>

<point name=»ws_1s_on_1″

alias=»ws_1s_on_1.1cws»

enable=»true»/>

<point name=»ws_1s_on_2″

alias=»ws_1s_on_2.1cws»

enable=»true»/>

</ws>

</point>

point name – имя сервиса в конфигураторе;

alias – это имя ссылки, по которой будем обращаться к веб-сервису. Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса.

В нашем случае веб-сервиса ws_1s_on_3.1cws нет в файле.

1С 8.3 ошибка «веб серверы не обнаружены»

В 1С Web сервисы это механизм который позволяет взаимодействовать с другими программами и информационными системами. Очень часто Web сервис используется для обмена данными между базами 1С. Для того чтобы этот механизм заработал нужно сначала опубликовать базу на веб сервере. И вот тут у многих начинаются проблемы, чаще всего появляется сообщение «веб серверы не обнаружены». Связанно это с некорректными настройками 1С и самого веб сервера. В данной статье расскажу как я впервые настраивал все это дело.

Так же рекомендую прочитать следующие статьи.

Как переименовать заголовки колонок в шапке отчета 1С СКД

1С как создать отчет с помощью СКД

Как в СКД добавить заголовок отчета

Как рассчитать сумму табличной части 1С

ТСД и 1С

Общая инструкция по настройки локального веб сервера для публикации 1С выглядит следующим образом.

1 Необходимо настроить сам веб сервер.

2 Установить компонент «Модули расширения веб-сервера».

3 Опубликовать базу.

Самый простой вариант (как я изначально думал) настройки веб сервера это использование готовой сборки, я решил воспользоваться XAMPP, установил запустил, все работает, далее установил «Модули расширения веб-сервера». Остался последний пункт это публикация на веб -сервер.

1С Web сервисы

Но в итоге увидел сообщение «Веб-серверы не обнаружены».

1С 8.3 ошибка "веб серверы не обнаружены"

Проверил еще раз сам веб сервер, все работало исправно ошибок ни каких не было.

1С 8.3 веб серверы не обнаружены

Попробовал переустановить модуль.

1С веб серверы

Но результата не было.

После посещения нескольких форумов выяснил, что 1С корректно работает только с веб-сервером Apache версии 2.4.

Скачать Apache 2.4 — apachelounge.com/download/

Как настроить веб сервер для 1С

Скачиваем Apache 2.4 с официального сайта распаковываем архив, для удобства использования и настройки папку Apache24 из архива, копируем в корень диска С.

Настройка веб сервера для 1С

Далее открываем файл httpd.conf, ищем пункт ServerName и пишем в нем Localhost:80.

Публикация базы на локальном веб сервер

Остается только установить Apache в качестве службы, для этого запускаем командную строку от имени администратора и переходим в папку Apache введя команду.

cd C:Apache24bin

Далее устанавливаем службу

httpd.exe -k install

Установка службы Apache

Остается только проверить запустилась она или нет.

Apache как запустить службу

Для уверенности открываем браузер и вводи Localhost, если видите вот такое сообщение значит веб сервер готов к работе.

Локальный веб сервер Apache

Теперь пробуем опубликовать.

Как опубликовать базу 1С на веб сервер

И проверяем работоспособность введя в браузере.

http://localhost/InfoBase

InfoBase — это имя вашей базы которое вы указывали во время публикации.

1с публикация базы

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

Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок.

Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия).

В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux  без графической оболочки,  то публикация через привычное окно конфигуратора становится невозможной.

Аналогичная ситуация возникает, когда на этой машине отсутствует клиент 1С:Предприятия и, следовательно, становится невозможным запуск конфигуратора.

О том, как осуществить публикацию базы можно почитать тут: Публикация 1С на Веб сервере Linux.

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

Итак, что делать, если не получается опубликовать веб-сервис 1С?

Список возможных ошибок:

1. Job for httpd.service failed because the control process exited with error code.

2. Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»

3. Ошибка «Invalid command ‘ManagedApplicationDescriptor’»

4. Не запускается 1С: Предприятие при подключении через веб сервер Linux. «Selinux policy enabled.»

5. Ошибка HTTP 404 Not found

6. Ошибка Service not found при обращении к веб-сервису 1С:Предприятия

Job for httpd.service failed because the control process exited with error code.

Полный текст ошибки:

Job for httpd.service failed because the control process exited with error code. See «systemctl status httpd.service» and «journalctl -xe» for details.

Описание ошибки:

После выполнения всех настроек файлов публикации базы или сервиса 1С:Предприятия. При попытке запустить веб-сервер — выдается ошибка и веб-сервер не запускается.

Данное сообщение говорит о том, что процесс был завершен  с ошибкой, более подробную информацию о которой можно получить в журнале. Как это сделать — описано далее.

Решение:

Необходимо проанализировать более подробное описание ошибки. Его можно получить следующим образом.

В результате выполнения команды будет выдано более подробное сообщение об ошибке.

Разбор, которых приведен в статье далее.

Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»

Полный текст ошибки:

сен 16 11:41:54 1s-on-web-1 httpd[6596]: AH00526: Syntax error on line 6 of /etc/httpd/e1c/base.conf:

сен 16 11:41:54 1s-on-web-1 httpd[6596]: Invalid command ‘forceHandler’, perhaps misspelled or defined by a module not included in the server configuration

Описание ошибки:

Ошибка связана с ошибками или «опечатками» в файле настроек base.conf. Иными словами, в данном файле есть некорректные строки, которые новичку бывает сходу не так просто найти.

Решение:

Исправить ошибку в строке сообщения. В данном случае допущена опечатка в имени команды.

vim /etc/httpd/e1c/base.conf

Пример ошибочной строки. Команды forceHandler  — на самом деле не существует :

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

   AllowOverride All

   Options None

   Require all granted

   forceHandler 1c-application

   ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

Исправим файл. Укажем корректное наименвоание команды — SetHandler:

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

   AllowOverride All

   Options None

   Require all granted

   SetHandler 1c-application

   ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

Ошибка «Invalid command ‘ManagedApplicationDescriptor’»

Полный текст ошибки:

Начат процесс запуска юнита httpd.service.

сен 16 12:18:11 1s-on-web-1 httpd[9857]: AH00526: Syntax error on line 7 of /etc/httpd/e1c/base.conf:

сен 16 12:18:11 1s-on-web-1 httpd[9857]: Invalid command ‘ManagedApplicationDescriptor’, perhaps misspelled or defined by a module not included in the server configuration

сен 16 12:18:11 1s-on-web-1 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE

сен 16 12:18:11 1s-on-web-1 systemd[1]: Failed to start The Apache HTTP Server.

— Subject: Ошибка юнита httpd.service

Описание ошибки:

Ошибка связана с тем, что в файле httpd.conf отсутствует ссылка на модуль веб-расширения 1С:Предприятия, которая должна указываться в «LoadModule _1cws_module».

В этом можно убедиться выполнив команду.

cat /etc/httpd/conf/httpd.conf | grep wsap

Если результат пустой, то строка вида «/opt/1C/v8.3/x86_64/wsap24.so», отсутвтует  —  модуль не прописан.

Решение:

Отредактировать конфигурационный файл httpd.conf

vim /etc/httpd/conf/httpd.conf

Добавить строку:

LoadModule _1cws_module «/opt/1C/v8.3/x86_64/wsap24.so»

Не запускается 1С: Предприятие при подключении через веб сервер, Linux. «Selinux policy enabled.»

Полный текст ошибки:

cat /var/log/httpd/error_log

Описание проблемы:

При попытке запустить клиента 1С:Предприятие через веб-сервер (строка подключения вида: «ws=»http://1s-on-server/bast»;») —  сеанс не запускается.

Но при этом, таже самая база — запускается успешно при прямом подключении к серверу 1С:Предприятия (строка подключения вида Srvr=»1s-on-server»;Ref=»base»;).

Решение:

1. Убедиться, что selinux, действительно, работает.

Если видим Enforcing, значит переходим к следующему пункту.

2. Отключить selinux:

3. Проверить, что настройка выполнена.

Permissive – включен, но ничего не запрещает.

Enforcing – включен, работает, и запрещает.

Ошибка HTTP 404 Not found

<strong>Пример полного текста ошибки:</strong>

404 Error in Request. HTTP Status: 404 Not found

<img class=«wp-image-809» src=«https://1s-on.ru/wp-content/uploads/2020/12/post-802-image-3.jpeg» />

HTTP 404 Not found

The webpage cannot be found

Описание:

После публикации базы на сервере, при попытке перейти по веб-ссылке базы из браузера– выдается ошибка.

Проще говоря, браузер сообщает, что не нашел такой папки публикации на сервере.

Решение:

Ошибка часто связана с неправильным вводом имени базы/папки публикации.

Необходимо проверить имена папок с конфигурационными файлами базы, а также имена базы и папок в самих конфигурационных файлах.

Проверить имена публикации базы(выделено):

1. Конфигурационный файл *.conf:

vim /etc/httpd/e1c/base.conf

следующего содержания:

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

AllowOverride All

Options None

Require all granted

SetHandler 1c-application

ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

2. Конфигурационный файл публикации базы *.vrd

vim /var/www/e1c/base/default.vrd

следующего содержания:

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

<?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=»/base»

ib=»Srvr=1s-on-1c-1; Ref=base»>

<ws>

<point name=»ws_1s_on_1″

alias=»ws_1s_on_1.1cws»

enable=»true»/>

<point name=»ws_1s_on_2″

alias=»ws_1s_on_2.1cws»

enable=»true»/>

</ws>

</point>

point name – имя сервиса в конфигураторе;

alias – это имя ссылки, по которой будем обращаться к веб-сервису.

Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса: 1s-on-1c-1/base/ws/ws_1s_on_1.1cws

Ошибка Service not found при обращении к веб-сервису 1С:Предприятия

Пример полного текста ошибки:

Описание:

При обращении к веб-сервису, после авторизации(если таковая требуется) – возникает ошибка, что сервис не найден. То есть публикация самой базы отвечает, но веб-сервиса нет или он не отвечает.

Ошибка часто связана с ошибками в именах самого веб-сервиса или его ссылки.

Решение:

Проверить имена веб-сервисов и ссылок на них.

    1. Конфигурационный файл публикации базы *.vrd

vim /var/www/e1c/base/default.vrd

следующего содержания:

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

<?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=»/base»

ib=»Srvr=1s-on-1c-1; Ref=base»>

<ws>

<point name=»ws_1s_on_1″

alias=»ws_1s_on_1.1cws»

enable=»true»/>

<point name=»ws_1s_on_2″

alias=»ws_1s_on_2.1cws»

enable=»true»/>

</ws>

</point>

point name – имя сервиса в конфигураторе;

alias – это имя ссылки, по которой будем обращаться к веб-сервису. Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса.

В нашем случае веб-сервиса ws_1s_on_3.1cws нет в файле.

Ошибка 1С 8 при публикации базы: Невозможна публикация информационной базы на веб-сервере Apache при различной разрядности платформы (64) и веб-сервера (32). Публикация не выполнена.

Описание ошибки:
После установки платформы 1С: Предприятие 8 разрядности x64 (ранее была установлена платформа 1С 8 разрядности x32) при попытке обновить публикацию базы на веб-сервере возникла ошибка «Невозможна публикация информационной базы на веб-сервере Apache при различной разрядности». Платформа 1С: Предприятие 8.3.18.1289

Найденные решения:

Пересказывать процесс настройки веб-сервера 1С на Apache нет смысла, т.к. уже есть достойная пошаговая инструкция на сайте infostart.ru. Поэтому перейдем к проблеме, с которой можно столкнуться в процессе окончания настройки и попытки непосредственной публикации базы по нажатию кнопки «Опубликовать».

1С 8 ошибка невозможна публикация информационной базы на веб-сервере Apache при различной разрядности
Рис. 1. Ошибка при попытке «Опубликовать» базу 1С 8 на веб-сервере Apache, когда различаются разрядности

Ошибка так же может быть и немного в другой формулировке — наоборот, что разрядность платформы (32), а веб-сервера (64). И это возникает по одной простой причине, что разрядность платформы 1С:Предприятие 8 и веб-сервера должны быть одинаковыми. Т.е. было нарушено это правило, когда была установлена x64 платформа 1С 8.

Логично, что ранее был установлен и работал Apache соответствующей 32 разрядности. Теперь необходимо было скачать и установить Apache разрядности x64.

Послу установки или переустановки Apache необходимо так же в файле httpd.conf сервера Apache изменить строку, в которой указан файл самой 1С для взаимодействия с веб-сервером «wsap24.dll»

1С 8, как устранить, исправить, ошибку, невозможна публикация информационной базы на веб-сервере Apache при различной разрядности
Рис. 2. Добавление в файл «httpd.conf» Apache записи для загрузки модуля веб-сервера «wsap24.dll» для x32-разрядной 1С 8

В данном примере пришлось изменить путь с «Program Files (x86)» на «Program Files» и указать каталог соответствующего установленного релиза платформы.

Нажатие на изображении увеличит его
1С 8, не получается опубликовать базу на сервере Apache
Рис. 3. Добавление в файл «httpd.conf» Apache записи для загрузки модуля веб-сервера «wsap24.dll» для 64-разрядной 1С 8

Если ранее стоял Apache другой разрядности. То его лучше предварительно удалить. После установки с другой разрядностью служба сервера «Apache2.4»  может не стартовать, т.к сохранился старый путь к исполняемому файлу службы. Для этого необходимо запустить редактор реестра Windows. В дереве перейти к ветке «HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesApache2.4» и у строкового параметра ImagePath изменить значение пути к исполняемому файлу.

 Нажатие на изображении увеличит его
переустановка сервера Apache такой же разрядности, что и 1С 8
Рис. 4. Указание пути к файлу службы сервера Apache после переустановки в редакторе реестра Windows

Но после всех указанных действий и успешного запуска службы Apache платформа 1С упорно отказывалась видеть 64-разрядную версию веб-сервера. Сохранялась ошибка «Невозможна публикация информационной базы на веб-сервере Apache при различной разрядности платформы (64) и веб-сервера (32)» после нажатия на кнопку «Опубликовать».

Прошли долгие искания, пока по запросу «1с 8 веб сервер при публикации не видит apache» не был получен любопытный ответ на странице форума сайта infostart.ru о том, что когда Apache установлен не в каталоге «Program Files», то 1С его не видит:

Нажатие на изображении увеличит его
как 1С 8 видит установленный веб-сервер Apache 2 на компьютере, сервере
Рис. 5. Определение причины, почему 1С 8 не видит Apache 2.4

Так же эту информацию подтвердила ссылка ниже на сайт ИТС все на той же странице инфостарта. Т.к. 1С ищет файл конфигурации httpd.conf в каталоге установки по умолчанию: C:Program FilesApache Software FoundationApache2.4conf (для разрядности Apache x64), а в моем случае установка была выполнена в другой каталог, то как и пользователю, мне помогло ручное создание каталога и копирование в него файла httpd.conf. Соответственно для Apache 32 разрядности каталог будет «Program Files(x86)».

Нажатие на изображении увеличит его
1С 8, как исправить, устранить, убрать, ошибку, Невозможна публикация информационной базы на веб-сервере Apache при различной разрядности платформы (32) и веб-сервера (64)
Рис. 6. Вариант решения проблемы того, что 1С 8 не видит установленный Apache 2.4 в качестве веб-сервера.

Поэтому для цели работы Apache в связке с 1С необходимо, чтобы установка веб-сервер в лучшем случае выполнялась в каталог «по умолчанию».

После этого оставалось преодолеть еще трудность, состоявшую в том, что в окне «Публикация на веб-сервере» в конфигураторе 1С 8 в списке поля «Веб-сервер» оказался доступен только «Internet Information Services».

1C 8, не видит веб-сервер Apache, доступен только IIS, Internet Information Services
Рис. 7. Ситуация, когда в конфигураторе 1С 8 при публикации на веб-сервере доступен только IIS

Но эта проблема решилась тем, что дополнительно нужно выполнить установку Apache в качестве службы ОС с помощью команды -k install в командной панели.

Нажатие на изображении увеличит его
1С 8, как установить, зарегистрировать Apache 2 как службу в Windows
Рис. 8. Установка Apache 2.4 в качестве службы Windows, чтобы не получить сообщение «Веб-серверы не обнаружены»

После данных операций наконец-таки стало возможно «Опубликовать» базу на веб-сервере Apache 2.4 и она и другие базы были опубликованы. И стал возможен запуск через браузер и через веб-клиент платформы на локальном рабочем месте.

Но еще оставалось преодолеть последнюю проблему. После того, как вроде казалось, что публикация настроена и база опубликована. при попытке открытия в веб-браузере публикация зависала при запуске базы 1с. Либо появлялась картинка запуска 1С, но не доходило до окна выбора пользователя. Либо просто ничего не происходило, не выдавая ошибку и 8ка в браузере зависала на заставке 1С (в конкретном случае для Apache 2.4).

Нажатие на изображении увеличит его
1С 8, ошибка, проблема зависания запуска в браузере базы, опубликованной на веб-сервере
Рис. 9. Пример зависания при запуске 1С 8, опубликованной на веб-сервере, в браузере. Не открывается окно выбора пользователя 

Либо для другой базы возникала ошибка «Произошел временный сбой интернет-соединения».

Нажатие на изображении увеличит его
1С 8, зависает веб-клиент 1С при подключении к базе, как исправить, устранить
Рис. 10. Ошибка при зависании базы 1С, опубликованной на веб-сервере, в браузере. Диалог авторизации пользователя не открывается.

Подключение базы через тонкий клиент — работало через ошибку, но все-таки открывалось окно для авторизации пользователя и база запустилась. Либо, принудительно нажимая кнопку «Выполнить запуск», либо дождавшись время истечение таймера на этой кнопке база открывалась.

Нажатие на изображении увеличит его
1С 8, ошибка при запуске базы на веб-сервере, ошибка HTTP при обращении к серверу: http:// Failure when receiving data from the peer
Рис. 11. Ошибка HTTP при обращении к серверу: http:// Failure when receiving data from the peer (Сбой при получении данных от пира).

Но хотелось довести дело до окончательного финального результата, ведь доступ к базе мог потребоваться именно через web-браузер на любом стороннем рабочем месте.

Есть рекомендация для случая серверной базы — очистить кэш сервера в srvinforeg_1541 на форуме mista.ru. Но в данном примере базы файловые.

Анализ логов ошибок Apache в файле «error.log» показал на ошибку «[ssl:warn] [pid 20524:tid 388] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name», что переводится как «Сертификат сервера НЕ включает идентификатор, который соответствует имени сервера».

Нажатие на изображении увеличит его
1С 8, проблема при запуске базы в браузере, server certificate does NOT include an ID which matches the server name
Рис. 12. Ошибка в логе ошибок «error.log» сервера Apache 2.4, когда происходит попытка обращения к базе в веб-браузере.

По данной ошибке нашлось две страницы, Certificate does NOT include an ID which matches the server name и How to Fix the XAMPP “Server Certificate Does NOT Include an ID Which Matches the Server Name” Error рекомендации с которых собирательно указвают на то, чтобы изменить в настройках файла «httpd-ssl.conf» строку, содержащую адрес сервера с «ServerName www.example.com:443″ на «ServerName localhost:8080«.

1С 8 и Apache 2.4, проблема зависания в браузере до выбора пользователя, как устранить, исправить
Рис. 13. Данные в файле «httpd-ssl.conf» сервера Apache: имя сервера, размещение файла SSL-сертификата 

После изменения, сохранения и перезапуска Apache проблема того, что 1С в браузере висела осталась, но явно уже этой ошибки в логе «error.log» не было.

Поиски продолжались. Был установлен сертификат из файла сертификата безопасности «conf/ssl.crt/server.crt» (см. предыдущий скрин для определения размещения файлов по данным файла «httpd-ssl.conf«).

регистрация, установка сертификата server.crt от Apache 2.4 для веб-сервера 1С 8
Рис. 14. Установка SSL-сертификата сервера Apache.

Попытка по инструкции установить сертификат в хранилище доверенных не дала положительных результатов. На этом попытки довести работоспособность в веб-браузере был приостановлены. Надеюсь, что приведенные варианты действий после преодоления проблемы с разной разрядностью платформы 1С 8 и веб-сервера Apache окажутся кому-нибудь все-таки полезными, т.к. кому-то они действительно помогли. Вариант работать с базой через веб-клиент, установив на рабочем месте платформу соответствующей разрядности удовлетворял, как возможный и позволяющий вести работу.

Если появится решение окончательной проблемы, то, конечно, эта статья, будет дополнена информацией.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

09-08-2021

Журавлев А.С.
(Сайт azhur-c.ru)

Подавляющая часть пользователей программных продуктов от фирмы 1С осведомлена о возможностях платформы и типовыхнетиповых конфигурациях, разработанных на ней. Но остальная часть юзеров в состав, которых входят бухгалтера, кадровики и другие офисные сотрудники наверняка не знают до конца всех прелестей программы. Сюда же можно отнести и опытных ИТ специалистов, который просто никогда плотно не работали с 1С, отсюда и вытекают упущения в использовании полного функционала. К подобным полезным механизмам ПО от 1С можно отнести возможность работы в нескольких клиентских режимах:

  • Тонкий клиент – это программа или клиентское приложение, входящее в состав системы 1С:Предприятие, которая позволяет работать пользователю с базой данных. Название «Тонкий клиент» вытекает из ограниченного списка возможностей, открытых в этом режиме.
  • Толстый клиент – это аналогичное клиентское приложение 1С, за исключением предоставления пользователю полных функциональных возможностей программы.
  • Веб-клиент – это виновник сегодняшней темы публикации, о котором будем вести речь. Веб-клиент является аналогом тонкого и толстого клиентов, интерфейс полностью идентичен. Однако между ними есть огромное отличие, которое заключает в принципе работы этого режима 1С. Тонкий и толстый клиенты запускаются и работают в среде операционной системы, неважно какой Windows или Linux, а веб-клиент для запуска и дальнейшей работы пользуется средствами браузера.

Это позволяет неограниченному количеству пользователей удаленно работать с центральной базой из любой точки, где есть интернет. Этот становится возможно благодаря публикации центральной базы на веб-сервере IIS (internet Information Server) или других подобных веб-серверах. Для того, чтобы правильно настроить подобным способом работу конфигурации необходимо следовать инструкциям, которые описаны в этой публикации.

Веб-сервер может использоваться как на операционных системах, предназначенных для серверного оборудования, так и на Windows 10. Отличие заключается только в разной настройке служб. Чтобы приступить к разворачиванию служб интернет-сервера, перейдем в стандартную панель управления, где откроем утилиту «Программы и компоненты», а далее в левой части окна нажмем «Включение или отключение компонентов Windows».

Включение или отключение компонентов Windows

В открывшемся окне «Компоненты Виндовс» необходимо найти и активировать галочкой «Службы IIS». Далее нужно развернуть дерево этого компонента и перейти в ветку как показано на скриншоте ниже. Здесь обязательно нужно активировать следующий набор компонентов, которые будут необходимы для корректной работы платформы 1С:Предприятие (х64): NET Extensibility 4.8, ASP библиотеки, а также расширения и фильтры ISAPI. Далее походу публикации разберем особенность настроек веб-сервера для работы с платформой разрядностью x86.

Включение служб IIS

После этого нажимаем «Ок» и перезагружаем компьютер, после перезагрузки, установленные компоненты должны будут заработать. Проверить это можно, открыв любой браузер, и в адресной строке ввести localhost. В браузере должна отобразиться домашняя страница IIS, это будет означать, что мы движемся в верном направлении. Если страница не отображается, значит необходимо проверить правильность включенных компонентов, о которых говорили выше.

Домашняя страница IIS

После успешного запуска IIS, необходимо убедиться в том, что во время установки программы 1С был добавлен модуль, который позволяет работать в режиме web-клиента. Для этого снова возвращаемся к утилите, отвечающей за программы и компоненты операционной системы, в списке программ находим установленную платформу и нажимаем «Изменить». В мастере установки, также выбираем режим установки «Изменить», чтобы добавить недостающие дополнения. В списке расширений платформы находим «Модуль расширения веб-сервера». Если он не отображается в виде красного крестика, значит этот модуль был установлен ранее, иначе его нужно установить.

Модуль веб-сервера 1С

Как только убедились в том, что 1С установлена корректно со всеми необходимыми дополнениями, продолжим двигаться дальше. Поскольку в корневую папку платформы будет обращаться сервер IIS, необходимо на эту папку дать полные права соответствующей группе пользователей под названием «IIS_IUSRS». Переходим в директорию, куда ранее была установлена 1С платформа (х64). Обычно это C:Program Files1Cv8, а для 32-разрядных C:Program Files(х86)1Cv8. Нажимаем правой кнопкой мыши и открываем свойства корневой папки 1cv8. Далее открываем вкладку, где определяется безопасность и нажимем кнопку «Изменить», чтобы добавить необходимую группу пользователей. Следом в открывшемся окне жмем «Добавить» и переходим в окно «Выбор: Пользователя или группы», где переходим в раздел дополнительно. Нажимаем в открывшемся окне кнопку «Поиск» и в результатх поиска выбираем IIS_IUSRS, после этого соответственно добавляем группу с помощью кнопки «ОК».

Полный доступ для группы пользователей

Далее останется только установить полные права этой группе в окне «Разрешения для группы:» и закрыть все открытые окна, нажимая «Ок».

Полный доступ

Публикация центральной базы

Следующий шаг, это процесс публикации базы, запускаем приложение 1С:Предприятие под правами администратора windows и переходим в конфигуратор основной базы. В конфигураторе в главном меню перейдем в раздел «Администрирование» — «Публикация на веб-сервере». В появившемся окне заполняем следующие реквизиты:

  • Имя. Название, которое будет использоваться для подключения в веб-клиенте.
  • Веб-сервер. По умолчанию будет установлен Internet Information Server.
  • Каталог. Папка публикуемой базы, создаваемая публикацией в основном каталоге IIS.

После, нужно отметить галочками сервисы, которые пригодятся для дальнейшей работы в браузере и далее нажать кнопку «Опубликовать». После должно высветиться диалоговое окно, которое сообщит об успешном завершении.

Публикация информационной базы

Отмечу, что, если используется 64-разрядная платформа, тогда останется только провести регистрацию, исполняемого модуля веб-расширения 1С в информационном интернет сервере (IIS). Это можно сделать с помощь специального файла «webinst.exe», который необходимо просто запустить от имени администратора и дождаться окончания выполняемых процедур. Располагается этот волшебный файл в каталоге bin, в директории, где была установлена 1С. После того как файл завершит работу, модуль будет зарегистрирован. Или же пойти вторым более долгим, но надежным путем. Открываем «Диспетчер служб Internet Information Server», где в дереве сайтов необходимо выбрать опубликованный веб-вариант центральной базы и перейти к настройкам «Сопоставления обработчиков».

Сопоставление обработчиков

В списке сопоставления найдем и откроем обработчик, относящийся к нашей базе, найти его можно по характерному названию «1C Web-service Extension». Дважды щёлкнем по нему, откроется окно редактирования, где в соответствующем поле укажем путь к исполняемому файлу 64-разрядного модуля расширения веб-сервера 1С. Его расположение соответствует корневой папке bin, в которую необходимо перейти и отметить необходимый файл (dll). Точный путь к нужному файлу показан на скриншоте ниже.

1C Web-service Extension

После, необходимо нажать на «Ок» и вернуться в список сопоставления обработчиков, где аналогичным способом открыть и настроить обработчик ISAPI-dll. В нем также необходимо указать директорию к исполняемому файлу wsisapi.dll 64-разрядного модуля.

wsisapi.dll

Процесс сопоставления обработчиков стандартного пула приложений для 32-рязрядных платформы полностью аналогичен, за исключением того, что исполняемый файл wsisapi.dll располагается в другой директории, соответствующей разрядности платформы (C:Program Files (x86)1cv88.3.16.1814binwsisapi.dll). Нужно просто указать этот путь в поле «Исполняемый файл» в обработчиках, рассмотренных выше. Ну и заключительным шагом разрешить работу для 32-разрядных программам в пуле стандартных приложений (см. рисунок ниже). 

Разрешения для 32-разрядных приложений

После этого разворачивание IIS и публикация базы на платформе 1С:Предприятие (x64-x86) закончена, чтобы в этом убедиться введем в браузере адрес публикации, например, http://localhost/Name_base. Если мы увидим загрузку нашей конфигурации значит можем радоваться, веб-клиент доступен и готов к работе. На этом статья подошла к своему логическому завершению, спасибо за внимание.

Веб-клиент 1С

Мы описывали как настраивать веб-публикацию на IIS в инструкции.

Но после настройки веб-публикации при подключении к базе может возникать ошибка “Ошибка HTTP 500.0 — Internal Server Error”.

Если модуль был установлен с 32-битного клиента, то требуется это указать в пуле приложений. Для этого мы делаем следующую настройку:

  • Заходим в Панель управления → Администрирование → Диспетчер служб IIS.
  • Выбираем Пулы приложения которые задействованы в веб-публикации, в нашем случае DefaultAppPool.
  • Нажимаем ПКМ Дополнительные параметры.
  • В строке Разрешены 32-разрядные приложения мы указываем True как на Рисунке 1.
  • Нажимаем ОК.

главная страница

Рисунок 1 — Дополнительные параметры пула приложений

Если не сработало, есть следующие возможные решения:

  1. Убедитесь, что разрешения NTFS для файла web.config верны и обеспечивают доступ к учетной записи компьютера веб-сервера. Заходим в директорию, где размещена публикация (по умолчанию — C:inetpubwwwrootИМЯ_БАЗЫ). Нажимаем ПКМ на web.config → Свойства → Безопасность. Убедитесь в том, что у группы IIS_USERS есть права на чтение, выполнение, запись и изменение файла. Если нет — нажмите кнопку Изменить, в появившемся окне Добавить → Дополнительно и найдите в списке IIS_USERS. Добавьте эту группу и назначьте соответствующие права.
  2. Проверьте журналы событий, чтобы посмотреть, была ли зафиксирована какая-либо дополнительная информация. Открываем Выполнить (ПКМ на кнопку меню пуск или сочетанием клавиш Win+R), вводим “eventvwr.msc”, нажимаем Enter. Возможно, журнал даст подсказку какой компонент может сбоить.
  3. Переустановите компонент IIS на сервере. В диспетчере серверов удалите роль Веб-сервера IIS, перезагрузите сервер, а затем установите заново через оснастку Добавить роли и компоненты.
  4. Установите компонент расширения .NET, если запрос сопоставлен управляемому обработчику.

В Windows Server 2012 и младше: заходим в Диспетчер серверов → Добавить роли и компоненты → Роли сервера → Веб-сервер (IIS) → Веб-сервер → Разработка приложений → Расширяемость .NET. Далее идём далее по указаниям системы.

После применения настроек, мы можем подключаться к настроенной веб-публикации без ошибок.

Нужна готовая настройка веб-доступа к 1С? Попробуйте наш сервер 1С в аренду, в услугу включены все настройки и обслуживание.

Internet Information Services (IIS) довольно капризный веб — сервер, его настройка сложнее Apache и при его работе чаще возникают проблемы и ошибки, но он позволяет обеспечить хорошую производительность работы программных продуктов на платформе 1С, работающих через веб — клиент. Маленькие организации могут использовать IIS как замена серверу 1С.
В этой статье я постарался собрать все проблемы и решения ошибки:

HTTP Error 500.0 - Internal Server Error
There is a problem with the resource you are looking for, so it cannot be displayed.

Module IsapiModule
Notification ExecuteRequestHandler
Handler 1C Web-service Extension
  • Ошибка HTTP Error 500.0 - Internal Server Error при публикации базы 1С 8 через IIS
    HTTP: Internal Server Error
    Ошибка работы с ресурсом

Проблема 1. 32 –разрядная платформы 1С

Ошибка HTTP Error 500.0 - Internal Server Error при публикации базы 1С 8 через IIS

Если у вас ОС Windows 64 – разрядный, а платформу 1С вы используете 32 битную, я рекомендую поставить 64 и повторно опубликовать базу через конфигуратор, предварительно указав в настройках списка баз вариант запуска информационной базы.
Если вы все же решили использовать 32 битную версию платформы, надо установить настройку «Разрешены 32-разрядные приложения» в значение True в параметрах пула приложений

Проблема 2. Путь к библиотеке wsisapi.dll

Ошибка HTTP Error 500.0 - Internal Server Error при публикации базы 1С 8 через IIS

Бывает так, что указан ошибочной путь к разрядности или версии платформы. Проверьте адрес библиотеки wsisapi.dll в файле C:inetpubwwwroot<Имя вашей публикации>web.config

Проблема 3. Старый компонент Microsoft Visual C++

Установите свежую версию библиотеки Visual C++. Скачать можно официального сайта Microsoft
https://support.microsoft.com/ru-ru/help/2977003.

Проблема 4. Использование разных версий платформ в опубликованных базах

Если вам надо опубликовать базы на разных версиях, создайте новый Пул приложений и укажите его в основных настройках публикации.

Ошибка HTTP Error 500.0 - Internal Server Error при публикации базы 1С 8 через IIS

Проблема 5. Права доступа к файлам 1С

Ошибка HTTP Error 500.0 - Internal Server Error при публикации базы 1С 8 через IIS

Группы пользователей IUSR и IIS- IUSRS должны иметь доступ к папкам с установленной платформой, а так же к самой информационной базе .

PS

Если вам не помог совет, напишите об этом в комментариях )

Logo_1c_8В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного, так и для 64-разрядного модуля расширения веб-сервера.

0. Оглавление

  1. Что понадобится
  2. Установка веб-сервера IIS
  3. Установка компонент «1С:Предприятие»
  4. Настройка операционной системы
  5. Публикация базы данных на веб-сервере
  6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
  7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
  8. Подключение к опубликованной информационной базе через веб-браузер
  9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
  10. Конфигурационные файлы виртуального каталога
    1. Файл default.vrd
    2. Файл web.config

1. Что понадобится

  1. Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
    • Microsoft Windows Server 2012 (R2)
    • Microsoft Windows Server 2008 (R2)
  2. Права локального администратора на данном компьютере.
  3. Дистрибутив для установки компонент «1С:Предприятие». Для настройки 64-разрядного модуля расширения веб-сервера, дистрибутив для установки 64-разрядного сервера «1С:Предприятие». В данном примере используется версия 8.3.4.389. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен.

2. Установка веб-сервера IIS

Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:

  • Общие функции HTTP (Common HTTP Features)
    • Статическое содержимое (Static Content)
    • Документ по умолчанию (Default Document)
    • Обзор каталогов (Directory Browsing)
    • Ошибки HTTP (HTTP Errors)
  • Разработка приложений (Application Development)
    • ASP
    • ASP.NET 3.5
    • Расширяемость .NET 3.5 (.NET Extensibility 3.5)
    • Расширения ISAPI (ISAPI Extensions)
    • Фильтры ISAPI (ISAPI Filters)
  • Исправление и диагностика (Health and Diagnostics)
    • Ведение журнала HTTP (HTTP Logging)
    • Монитор запросов (Request Monitor)
  • Средства управления (Management Tools)
    • Консоль управления IIS (IIS Management Console)

Подробно про процесс развертывания веб-сервера IIS я писал:

  • В Microsoft Windows Server 2012 (R2) — здесь. IIS версии 8, после установки должны увидеть страницу Default Web Site вида:

Ustanovka_IIS_8_Winsdows_Server_2012_13

  • В Microsoft Windows Server 2008 (R2) — здесь. IIS версии 7, после установки должны увидеть страницу Default Web Site вида:

605

3. Установка компонент «1С:Предприятие»

На этот же сервер, где развернут веб-сервер IIS, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:

  • 1С:Предприятие
  • Модули расширения веб-сервера

publikaciya_bd_na_web_server_IIS_23

Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера из соответствующей поставки «1С:Предприятие» и установить компоненту:

  • Модуль расширения веб-сервера

publikaciya_bd_na_web_server_IIS_31

4. Настройка операционной системы

Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:inetpubwwwroot ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).

publikaciya_bd_na_web_server_IIS_01

В открывшемся окне свойств, переходим на вкладку «Безопасность» (Security) и нажимаем кнопку «Изменить» (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи» (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ» (Full control). Затем нажмем «Применить» (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК».

publikaciya_bd_na_web_server_IIS_02

Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:Program Files (x86)1cv8 для 32-разрядного модуля расширения и C:Program Files1cv8 для 64-разрядного) группе IIS_IUSRS. Для этого выполняем аналогичные описанным выше действия, с той лишь разницей, что для того чтобы необходимая группа появилась в списке «Группы или пользователи» (Groups or user names) необходимо нажать расположенную под списком кнопку «Добавить» (Add..), а в окне выбора групп или пользователей нажать «Дополнительно» (Advanced…).

publikaciya_bd_na_web_server_IIS_03

Затем нажимаем расположенную справа кнопку «Поиск» (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК».

publikaciya_bd_na_web_server_IIS_04

Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем  «Применить» (Apply) для сохранения изменений.

publikaciya_bd_na_web_server_IIS_05

Ну и наконец, если публикация выполняется для файловой базы, необходимо также дать группе IIS_IUSRS полные права на каталог с расположенными файлами данной информационной базы.

publikaciya_bd_na_web_server_IIS_06

5. Публикация базы данных на веб-сервере

Переходим к непосредственной публикации базы данных на веб-сервере. Для этого запускаем «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать.  Затем в меню выбираем «Администрирование» — «Публикация на веб-сервере…»

publikaciya_bd_na_web_server_IIS_07

Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:

  • Имя виртуального каталога — имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
  • Веб сервер — выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
  • Каталог — физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
  • Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес» изменить синоним, по которому будет происходить обращение к данному Web-сервису.
  • Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.

Выбрав необходимые настройки публикации нажимаем «Опубликовать».

publikaciya_bd_na_web_server_IIS_08

Если публикация прошла без ошибок, увидим соответствующее сообщение.

Публикация на веб-сервере IIS всегда выполняется для веб-сайта по умолчанию и для пула приложения по умолчанию. Стоит иметь ввиду, что при выполнении публикации из конфигуратора будет зарегистрирован 32-разрядный модуль расширения веб-сервера, а используемый по умолчанию пул приложений — DefaultAppPool — без настройки работает только с 64-разрядными приложениями. Соответственно, дальнейшие действия зависят от разрядности модуля расширения веб-сервера, который планируется использовать. Для 32-разрядного модуля расширения веб-сервера, необходимо разрешить пулу приложений использовать 32-разрядные приложения, либо же зарегистрировать 64-разрядный модуль расширения веб-сервера. Об этом пойдет речь ниже

6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера

Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).

publikaciya_bd_na_web_server_IIS_10

Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию — Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которое мы задавали при публикации базы данных. Для завершения публикации осталось только разрешить 32-разрядные приложения для пула приложений по умолчанию. Для этого перейдем в дереве подключений на вкладку «Пулы приложений» (Application Pools).

publikaciya_bd_na_web_server_IIS_11

В списке пулов приложений найдем пул с именем DefaultAppPool. Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Дополнительные параметры» (Advanced Settings).

publikaciya_bd_na_web_server_IIS_12

В открывшемся окне параметров пула приложения, в группе «Общие» (General) найдем пункт «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications) и установим значение параметра равным True. Затем сохраним изменения нажав «ОК».

publikaciya_bd_na_web_server_IIS_13

7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера

Зарегистрировать 64-разрядный модуль расширения веб-сервера можно с помощью утилиты webinst.exe соответствующей версии, расположенной в каталоге bin, каталога с установленной программой «1С:Предприятие», либо воспользоваться приведенным ниже способом.

Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).

publikaciya_bd_na_web_server_IIS_10

Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию — Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которым мы задавали при публикации базы данных. Для завершения публикации осталось только указать данному приложению использовать 64-разрядный обработчик запросов. Для этого откроем страницу настройки сопоставления обработчиков для данного виртуально каталога, выбрав пункт «Сопоставление обработчиков» (Handler Mappings) на начальной странице приложения.

publikaciya_bd_na_web_server_IIS_19

В таблице сопоставлений обработчиков найдем обработчик «1С Web-service Extension». Откроем данный обработчик, кликнув 2 раза по соответствующей строке в таблице.

publikaciya_bd_na_web_server_IIS_32

Отредактируем обработчик, заменив путь к исполняемой dll 32-разрядного модуля расширения веб-сервера, который выбран в данный момент, на путь к 64-разрядной версии библиотеки. В данном примере меняем путь c «C:Program Files (x86)1cv88.3.4.389binwsisapi.dll» на «C:Program Files1cv88.3.4.389binwsisapi.dll» воспользовавшись кнопкой выбора. Изменив путь нажимаем «ОК» для сохранения изменений.

publikaciya_bd_na_web_server_IIS_33

8. Подключение к опубликованной информационной базе через веб-браузер

Ну вот вроде и все. Для подключений к только что опубликованной базе данных, запускаем Internet Explorer, и в строке адреса вводим путь вида http://localhost/<Имя публикации информационной базы>. В данном примере это http://localhost/DemoAccounting/.

publikaciya_bd_na_web_server_IIS_14

К данной информационной базе также можно подключиться и с любого компьютера в сети, обратившись к веб-серверу по его внутреннему (или если прокинут порт 80, по внешнему) IP-адресу.

В этом случае, для корректной работы «1С:Предприятие», имя домена, на который идет обращение (или IP-адрес) должен быть добавлен в надежные узлы Internet Explorer, а также для него должны быть разрешены всплывающие окна. Подробнее про настройку Internet Explorer для работы веб-клиента «1С:Предприятие» читайте здесь.

dobavlenie-veb-sajta-v-spisok-nadezhnyx-uzlov-ie_09

9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»

К опубликованной на веб-сервере информационной базе можно подключиться и с помощью тонкого клиента «1С:Предприятия». Для подключения откроем окно запуска «1С:Предприятие» и нажмем кнопку «Добавить» для добавления информационной базы.

publikaciya_bd_na_web_server_IIS_24

В окне добавления информационной базы/группы установим переключатель в «Добавление в список существующей информационной базы» и нажмем «Далее».

publikaciya_bd_na_web_server_IIS_25

Введем имя базы данных, как она будет отображаться в списке информационных баз (должно быть уникальным для данного списка), тип расположения выберем «На веб-сервере» и нажмем «Далее».

publikaciya_bd_na_web_server_IIS_26

Вводим строку адреса для подключения к информационной базе (без префикса /ru_RU/). Также здесь можно указать параметры прокси-сервера (если есть) и способ аутентификации на веб-сервере. Указав необходимые настройки снова жмем «Далее».

publikaciya_bd_na_web_server_IIS_27

Указываем параметры запуска для информационной базы и нажимаем «Готово» для завершения работы мастера.

publikaciya_bd_na_web_server_IIS_28

После чего данная информационная база появится в списке баз окна запуска «1С:Предприятие».  Обратим внимание что режим запуска Конфигуратор недоступен для данного типа подключения. Нажимаем «1С:Предприятие» для подключения к информационной базе.

publikaciya_bd_na_web_server_IIS_30

publikaciya_bd_na_web_server_IIS_29

10. Конфигурационные файлы виртуального каталога

Рассмотрим подробнее структуру файлов, которые были созданы в процессе публикации. Если веб-доступ к опубликованной информационной базе по каким-то причинам не заработал, конфигурационные файлы можно отредактировать вручную, для достижения желаемого результата (конфигурационные файлы из данной статьи для 64-разрядного модуля расширения веб-сервера можно скачать здесь).

Перейдем в каталог, который мы указывали во время публикации базы данных. В нем увидим два файла:

  • default.vrd
  • web.config

publikaciya_bd_na_web_server_IIS_15

Оба файла доступны для просмотра и редактирования с помощью любого текстового редактора, например программы «Блокнот» (Notepad). Рассмотрим структуру этих файлов подробнее.

10.1. Файл default.vrd

В файле default.vrd описываются опубликованные Web-сервисы (элемент <ws>), а также указывается имя виртуального приложения (атрибут base) и строка подключения к информационной базе «1С:Предприятие» (атрибут ib). В данном примере для файловой информационной базы, строка подключения будет следующей:

ib="File=&quot;C:1C_BASEDemoAccounting&quot;;"

Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.

publikaciya_bd_na_web_server_IIS_16

В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:

ib="File=&quot;C:1C_BASEDemoAccounting&quot;;Usr=Продавец;Pwd=123;"

Для серверной информационной базы строка подключения будет иметь вид:

ib="Srvr=&quot;WIN2012&quote;;Ref=&quote;Accounting&quote;;"

Где WIN2012 — имя кластера серверов «1С:Предприятие», а Accounting — имя базы данных в кластере.

publikaciya_bd_na_web_server_IIS_17

Подробнее про структуру данного файла можно почитать в книге «Руководство администратора» 2-е издание , Приложение 2, глава 3.12.

10.2. Файл web.config

Файл web.config — это файл, определяющий параметры для ASP.NET web-приложения. В каждом web-приложении должен быть файл web.config, находящийся в его корневом каталоге. Наш виртуальный каталог не является исключением. В текущем файле содержатся данные об обработчике «1С Web-service Extension», обрабатывающем запросы к данному приложению. Обработчик настроен таким образом, что все запросы передаются библиотеке wsisapi.dll, расположенной в каталоге bin, каталога с файлами «1С:Предприятие». В случае использования серверных информационных баз, версия библиотеки должна соответствовать версии кластера серверов «1С:Предприятия».

publikaciya_bd_na_web_server_IIS_18

Данный обработчик можно найти (или добавить, если его нет) в Диспетчере служб IIS. Для этого необходимо выделить вкладку с текущим приложением и в окне свойств выбрать пункт «Сопоставления обработчиков» (Handler Mappings).

publikaciya_bd_na_web_server_IIS_19

В таблице сопоставлений обработчиков увидим наш обработчик «1С Web-service Extension». Если такого обработчика в списке нет, его следует добавить выбрав в окне «Действия» (Actions) пункт «Добавление сопоставления сценария с подстановочными знаками» (Add Wildcard Script Map…).

publikaciya_bd_na_web_server_IIS_20

При добавлении вводим имя обработчика и указываем путь к файлу wsisapi.dll. Данные параметры можно изменить и для действующего обработчика выбрав пункт «Изменить…» (Edit…) в окне списка действий.

publikaciya_bd_na_web_server_IIS_21

Необходимо также убедиться, что для обработчика стоит флаг «Выполнение» (Execute) в окне изменений разрешений функции. Вызвать данное окно можно выбрав пункт «Изменение разрешений функции…» (Edit Feature Permissions…) в окне «Действия» (Actions).

publikaciya_bd_na_web_server_IIS_22

Реклама:

Некоторые моменты при публикации или как опубликовать базу 1С на веб-сервере Microsoft Internet Information Services (IIS).

При публикации базы 1С во избежании ошибки

«Невосстановимая ошибка ошибка при выполнении запроса post к ресурсу e1cib/login web клиент»

необходимо дать права на папку с информационной базой для группы пользователей IIS_IUSRS.

Файл web.config в каталоге с опубликованной базой (примерный путь к каталогу «C:inetpubwwwrootbp30″) должен выглядеть примерно следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="1C Web-service Extension" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:Program Files (x86)1cv88.3.8.1964binwsisapi.dll" resourceType="Unspecified" requireAccess="None" />
</handlers>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestPathInvalidCharacters="" />
</system.web>
</configuration>

Если в нем чего-то не хватает, то это нужно добавить.

Если вам понравилась данная статья или у вас есть пожелания как сделать ее лучше, пожалуйста, оставляйте комментарии ниже (↓)

Рассмотрим вопрос по публикации баз 1С на IIS. Есть что сказать по настройке. Потому как регулярно возникают похожие вопросы. Например, ошибка «0x800700c1» в IsapiModule или «HTTP 500.0 Internal Server Error».

Общие моменты

1. Состав компонентов IIS — в Интернете полно инструкций и указаний. Повторяться не будем.

2. Установка 1С необходимой разрядности. Варианта 2: x86 (32-разрядное приложение) или x64. Обязательно выбираем «Модули расширения веб-сервера».

Установка модулей расширения веб-сервера

3. Права для встроенной группы веб-сервера (IUSR) на папки:

  • с установленной платформой (для старта процессов);
  • самих расположений ИБ (в случае файлового варианта).

4. Публикация базы через Конфигуратор 1С. Возможно потребуется открыть программу с повышенными правами — «Запуск от имени администратора».

5. Для 32-разрядного клиента 1С в диспетчере IIS включаем разрешение запуска (DefaultAppPool — Дополнительные параметры — Разрешены 32-разрядные приложения = True). Для 1C x64 — значение не меняем.

6. На странице сопоставления обработчиков для «1С Web-service Extension» потребуется указать путь к исполняемому модулю:

  • x86 — «C:Program Files (x86)1cv88.3.x.xxbinwsisapi.dll»;
  • x64 — «C:Program Files1cv88.3.x.xxbinwsisapi.dll».

Либо изменяем путь к библиотеке в файлах web.config через Блокнот (располагается, как правило, в c:inetpubwwwroot<имя базы>).

Если в п. 2 все сделано правильно — по указанному пути должен присутствовать файл wsisapi.dll.

7. В некоторых случаях потребуется перезапуск служб IIS. Выполните «Перезапустить» в оснастке управления или перезагрузите сервер.

Соблюдаем соответствие разрядности: если запускаем и публикуем 64-разрядный клиент 1С:Предприятие, то dll также должна быть 64-битной версии.

Если публикуем 32-разрядную версию 1С, то ставим разрешение запуска 32-разрядных приложений на IIS и проверяем путь к wsisapi из каталога x86.

Ищете подробное описание? Обратите внимание на статьи:

  • Публикация баз 1С на веб-сервере IIS и возможные ошибки;
  • Установка веб-сервера IIS на Windows 10 Pro для 1С.

Понравилась статья? Поделить с друзьями:
  • Ошибка при прыжке в длину 6 букв сканворд
  • Ошибка при прошивки через рекавери
  • Ошибка при прошивки через odin
  • Ошибка при прошивки через miflash
  • Ошибка при прошивки через flashtool