При создании описания сервиса произошла ошибка url сервиса код ответа сервера 404

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

Я

  

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С теперь стучится туда же, где апач (на нем же) :)

Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5.
Windows Server 2012 R2 Standard, 1С:Предприятие 8.3 (8.3.4.465)

Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5.

Windows Server 2012 R2 Standard, 1С:Предприятие 8.3 (8.3.4.465)

Следуя пошаговой инструкции, опубликованной в статье //infostart.ru/public/75205/ для предыдущих версий IIS, произвел настройку вышеуказанной связки. Нижу привожу обновленную инструкцию.

1) Установка IIS выполняется стандартными средствами. Набор достаточных компонент приведен на скриншоте.

2) Создаем папку на web сервере. В моем случае 1С.

 

3) Публикуем сервис из 1С. Администрирование -> 1С -> Конфигуратор  -> Администрирование  -> Публикация на Web-сервере.

 

Содержимое.

 

4) Зададим права для обработчика web-сервисов 1С. Права на запуск (Выполнение) модулей добавляются для группы IIS_IUSRS на папку
C:Program Files (x86)1cv88.3.4.465in.

 

5) Если база файловая, нужно добавить права на изменение (Изменение) на папку и подпапки базы для той же группы.

 

6) В консоли IIS. Кликаем правой кнопкой мыши на строку с созданной нами папкой.  Преобразовываем её в приложение.

 

 7) Добавляем MIME типы 1С. Делать это можно для сервера или для сайта, или для папки. Наследование присутствует.

 

8) Добавляем настройки для обработки файлов 1С. На вкладке Сопоставление обработчиков добавляем скрипты (не скрипты со звездочкой) для каждого расширения -«*.1cws» и «*.1crs».

 

Имена любые. Главное — для каждого расширение отдельное правило! Ограничения запроса -> Доступ -> Сценарий или Выполнение.

9) Для обработчиков нужно задать дополнительные параметры (Edit Feature Permission). Установить флаги запуска скриптов и приложений.

 

10) Можно проверить наличие обработчика web-сервисов 1С на вкладке ISAPI and CGI Restrictions для сервера.

 

Так как установка идет в 64 разрядном окружении, то для обработчика нужно включить режим Пулы приложений -> DefaultAppPool -> Дополнительные параметры -> Разрешены 32-разрядные приложения ->True.

 

11) Обращаемся по адресу http://localhost/1C/.

 

12) Об анонимной аутентификации на IIS и доступе к базе. Настроить доступ с использованием автоматически создаваемого пользователя IUSR у меня получилось. Важно проверить, что Анонимная проверка подлинности включена как в корне сервера, ТАК И НА САЙТЕ. Иначе не работает!!!!

 

Все работает :)!

Благодарности:

//infostart.ru/public/75205/

Всем спасибо за внимание!

Создайте письмо за 15 минут. Отправляйте до 1500 писем в месяц бесплатно.

Ошибка 404, либо Error 404 Not Found появляется, если браузеру не удалось обнаружить на сервере указанный URL.

Сообщение об ошибке 404

Error 404 Not Found отображается по-разному: «HTTP 404 не найден», «Ошибка 404 Not Found», «404 Страница не найдена». Смысл надписи всегда остаётся тем же: страница отсутствует либо просто не работает. Not Found в переводе означает «не найдено».

Ошибка 404 — классический код ответа по протоколу HTTP. Он свидетельствует, что связь с сервером установлена, но информации по заданному запросу нет.

Однако если просто ввести в поисковую строку произвольный набор символов, то браузер не покажет ошибку 404 Not Found — появится сообщение, что установить соединение с конкретным сервером невозможно.

Разберёмся в техническом формировании ответа Error 404 Not Found.

Техническая сторона вопроса. При связи по HTTP браузер запрашивает указанный URL и ждёт цифрового ответа. То есть любой запрос пользователя направляется на сервер размещения искомого сайта. Когда браузеру удаётся связаться с сервером, он получает кодированный ответ. Если запрос корректный и страница найдена, отправляется ответ с кодом 200 OK, что соответствует благополучной загрузке. При отсутствии страницы отправляется ответ об ошибке.

Что значит код «404». В ответе 404 первая четвёрка указывает на то, что запрос был чрезмерно длительным или в самом адресе была ошибка. Ноль предполагает синтаксическую неточность. Завершающая цифра кода отображает конкретную причину ошибки — «4» означает отсутствие данной ссылки.

Какие ещё ошибки бывают. Ошибку 404 не нужно путать с другими ответами, которые указывают на невозможность связи с сервером. Например, ошибка 403 сообщает, что доступ к URL ограничен, а ответ «Сервер не найден» свидетельствует, что браузер не смог обнаружить место размещения сайта.

Google на 404 странице сообщает о возможных причинах ошибки

Причины ошибки

Причины, по которым HTTP возвращает ответ 404 Not Found:

В большинстве ситуаций ошибка 404 отображается, когда не удаётся обнаружить нужную страницу на доступном сервере.

Причины отсутствия страницы на сайте бывают разными

Возможные последствия для сайта

Нужно ли считать 404 ошибку опасной для сайтов? Кажется, что нет ничего плохого в том, что пользователь не смог открыть одну веб-страницу. Однако если такая ситуация будет повторяться регулярно, это чревато оттоком аудитории. Одни пользователи решат, что сайт вовсе не существует. Другие подумают, что лучше не заходить на сайт, который работает с ошибками. Третьи будут игнорировать ресурс, на котором не смогли получить обещанную информацию.

Поисковые системы относятся к Not Found более лояльно. Например, Google отмечает, что 404 страницы не влияют на рейтинг. Но если при индексации роботы будут находить все больше ошибочных страниц, вряд ли это приведёт к более высокому ранжированию.

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

Как выявить ошибку

На небольшом ресурсе легко проверить работоспособность ссылок вручную. Но если на сайте сотни и тысячи страниц, без дополнительного софта не обойтись. Есть немало сервисов и программ, позволяющих находить битые ссылки. Рассмотрим некоторые из них.

Search Console Google

Консоль поиска Google позволяет находить страницы с ошибкой 404 за несколько кликов:

Чтобы получить список страниц с ошибками, подтвердите права на ресурс — добавьте проверочную запись TXT в записи DNS регистратора домена. Такая запись не повлияет на работу сайта. Подробнее о процедуре подтверждения, читайте в справке Google.

Для использования Search Console Google нужно подтвердить свои права на сайт

Яндекс Вебмастер

Сервис для вебмастеров от Яндекса поможет быстро найти все ошибки 404:

Чтобы использовать Яндекс. Вебмастер, также нужно подтвердить право владения сайтом — добавить метатег в HTML-код главной страницы.

Для входа в Вебмастер авторизуйтесь в Яндексе

Screaming Frog

Для начала загрузите и установите программу на компьютер. После запуска добавьте URL проверяемого сайта и начните поиск проблем. Неработающие ссылки можно искать даже в бесплатной версии.

Инструмент SEO-паук в Screaming Frog помогает найти технические неисправности сайта

SiteAnalyzer

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

SiteAnalyzer бесплатно найдёт неработающие URL

Как исправить ошибку Not Found

Выбор конкретного решения зависит от причины ошибки:

Удалять и менять ссылки вручную удобно только на небольших сайтах. Исправление ошибок на крупных порталах лучше автоматизировать. Например, с помощью специальных плагинов для внутренней перелинковки (Terms Description, Dagon Design Sitemap Generator) и для автоматического формирования адресов страниц (Cyr-To-Lat).

Чтобы ошибки 404 появлялись как можно реже, достаточно соблюдать простые рекомендации:

Мы разобрались, как найти и исправить ошибки Not Found внутри сайта. Но неработающая ссылка может быть расположена и на стороннем ресурсе. Допустим, когда-то на другом сайте разместили рекламную публикацию со ссылкой на определённую страницу. Спустя какое-то время страницу удалили. В этом случае появится ошибка 404. Устранить её можно, связавшись с администрацией ссылающегося сайта. Если же удалить/исправить ссылку нельзя, постарайтесь использовать ошибку с выгодой.

Как сделать страницу 404 полезной

Грамотно оформленная страница с ошибкой Error 404 Not Found — действенный инструмент конвертации посетителей. Ограничений по использованию страницы с ошибкой 404 нет. При этом практически все CMS позволяют настраивать дизайн этой страницы.

Что публиковать на странице 404:

При оформлении страницы-ошибки желательно опираться на рекомендации поисковиков:

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

Примеры оформления страниц 404

Designzillas

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

Меню на сайте Designzillas есть и на 404 странице

Domenart Studio

Веб-студия «Домен АРТ» использует красочную страницу 404, оформленную в единой стилистике ресурса. Заблудившимся пользователям предлагают попробовать ещё раз ввести адрес или перейти в нужный раздел.

Контакты, поиск, меню — и всё это на 404 странице Domenart Studio

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

Ошибка 404 «Эко Пауэр» выглядит как страница входа

Дом со всем

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

Компания «Дом со всем» предлагает заказать обратный звонок

Kualo

Страница 404 на веб-хостинге Kualo может заставить пользователя забыть, зачем он сюда пришёл. Увлекательная игра притягивает внимание. В конце игры посетителю предлагают посмотреть сайт хостинга.

На странице Kualo можно просто поиграть и заработать скидки

Рано или поздно с ошибкой 404 сталкивается большинство сайтов. При регулярной проверке можно своевременно исправить неработающие ссылки, чтобы в ответ пользователи получали код 200 OK. Но для крупного ресурса лучше настроить оригинальную страницу, которая будет отображаться при появлении ошибки Not Found и подскажет посетителям, что делать дальше.

Ошибка 405 или 500 в HTTP сервисе 1С

Блог

Ошибка 405 и 500 в HTTP сервисе 1С. Поиск и устранение.

Добрый день, хотел поделиться с вами результатом преодоления этих ошибок при работе с http сервисами 1С. С данной ошибкой мне пришлось столкнуться при переписывании мобильного приложения с web сервисов на http. Ошибка возникала при отправке http сервису POST запроса.

Ошибка 405

При работе с некорректным HTTP сервисом из мобильного приложения возвращалась ошибка 405, которая указывает на конкретную проблему. «405 Method Not Allowed — указанный клиентом метод нельзя применить к текущему ресурсу.» Долго не мог разобраться с данной ошибкой, так как в сервисе запрос был разрешен и шаблоны были настроены корректно.

Ошибка 500

При работе с некорректным HTTP сервисом из внешних программ возвращалась ошибка 500, которая ни о чем конкретном не говорит. «500 Internal Server Error — любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса».

Вроде HTTP сервис один, а при использовании запросов к нему из разных программ возвращались разные ошибки.

Расследование ошибок 405 и 500 в HTTP сервисе 1С

Времени на выяснение причин ушло очень много. За несколько дней до этой задачи мною были проведены десятки экспериментов по сборке и настройке web сервера apache 2.4 x64 SSL для работы с 1С. Все настройки в основном были связаны с кросс доменными запросами из web приложения на javascript. Столкнувшись с ошибками 405 и 500 на другом проекте я сразу полез в дебри конфигурации apache. После полного удаления apache поставил IIS и на нем вышла такая же ошибка. Поднял на виртуальной машине чистую систему, попробовал apache и iss, но ошибка так и проявлялась. Потом я вспомнил, что одна функция мобильного приложения уже давно использует http сервис и там все прекрасно работает. Создал http сервис с базовыми настройками и все заработало.

Как только я переносил код из web сервиса в функции http сервиса, сразу появлялись ошибки. Самое интересное, что отладка не срабатывала, т. е. POST запрос в пустую функцию приходил и отрабатывал, а в функцию с кодом нет.

На многих форумах ошибку 405 описывают как ошибку доступа, либо не корректную настройку http сервиса.

Итог разбора ошибок 405 и 500 в HTTP сервисе 1С.

В итоге все оказалось довольно просто. Функция, которая вызывалась внутри функции http сервиса 1с не могла быть вызвана из данного модуля. Странно, что при сохранении конфигурации никакой ошибки на вызов отсутствующей функции не было. Возможно это глюк версии платформы и будет доработан. При использовании web сервисов, даже если код внутри функции был не корректный, отладка работала. В http сервисе сразу идет возврат с ошибками 405 или 500.

P. S. В последней версии платформы ошибка 405 перестала выходить.

Обновление 12.01.2019

В процессе работы часто приходится сталкиваться с ошибками 405 и 500 в HTTP сервисах. Но проблема в 99% случаев в коде сервиса. Возможно это не явно, код вас может уводить глубоко в другие модули, но решение надо искать именно там.

Сейчас у меня такие ошибки начинают и в рабочих проектах. Стоит только внести небольшое изменение которое вызывает исключительную ситуацию, как вы получите ошибку 500. Мобильный клиент ведет себя еще более странно и отловить реальную ошибку очень тяжело, особенно когда переделывает чужие формы под мобильный клиент.

В данный момент я начинаю с того, что отключаю вызов всех функций и процедур начиная со входа в обработчики HTTP сервиса и смотрю как проходят запросы. Если все хорошо, то я начинаю включать код небольшими кусочками и проверять работу сервиса. Данный метод не самый быстрый, но дает 100% результат.

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

Источники:

Https://www. unisender. com/ru/support/about/glossary/chto-oznachaet-oshibka-404-na-sajte-i-chto-s-nej-delat/

Https://nizamov. studio/article-00001/

Как проверить код ответа сервера и понять его значение. Подробный перечень частых ошибок HTTP с пояснениями.

В статье:

  1. Как проверить код ответа сервера

  2. Значения кодов ответов сервера

  3. Информационные коды

  4. Коды успешной обработки запроса

  5. Коды редиректов

  6. Коды ошибок клиента

  7. Коды ошибок сервера

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

На код ответа сервера обращают внимание поисковые боты и браузеры.

Как проверить код ответа сервера

Посмотреть код ответа на странице можно бесплатно за пару кликов. В браузере информация находится на панели разработчика: в Google Chrome для вызовите панель горячей клавишей F12, откройте вкладку Network и обновите страницу.

Как посмотреть код сайта в браузере

Результаты просмотра кода в браузере

Для просмотра кода есть браузерные расширения:
HTTP Headers для Google Chrome, HTTP Header для Opera.

Инструмент в Яндекс.Вебмастере покажет код статуса HTTP.

проверка кода ответа сервера

Результаты проверки инструментом

Инструмент
проверки заголовков сервера от PR-CY определит HTTP статусы сайта и доменного имени.

как проверить код ответа сервера

Результаты проверки инструментом

Значения кодов ответов сервера

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

Принадлежность кода к группе определяется по первой цифре:

  • 1— — информационный код, отвечающий за передачу данных.
    Такие коды временны и показывают, что запрос принят и обрабатывается.
  • 2— — код успешной обработки запроса.
    Сервис получил и обработал запрос.
  • 3— — код редиректа.
    Сервер сигнализирует, что для выполнения запроса нужно предпринять дополнительные действия, к примеру, перейти на другой адрес.
  • 4— — клиентская ошибка.
    Ошибка на стороне клиента. Возможно, пользователь что-то сделал неправильно, и поэтому запрос не может быть успешно обработан.
  • 5— — серверная ошибка.
    По какой-то внутренней причине сервер не может выполнить пользовательский запрос.

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

Информационные коды

Коды этой группы информируют о том, что сервер принял запрос и будет его обрабатывать.

100 Continue

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

101 Switching Protocols

Сервер одобрил переключение типа протокола, которое запросил пользователь. Код используется, когда сервер предлагает перейти на новую версию HTTP. В поле Update будут перечислены доступные протоколы, пользователь может выбрать один из них.

102 Processing

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

Коды успешной обработки запроса

Коды группы сигнализируют о том, что запрос принят и успешно обработан.

200 ОК

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

201 Created

Ответ означает, что сервер принял запрос, обработал и создал новый ресурс. Код можно увидеть, к примеру, если пользователь создал новую страницу. Если новый ресурс создать невозможно, или он перестанет существовать к тому времени, когда клиент получит сообщение, то сервер отдаст код 202 Accepted.

202 Accepted

Сервер принял запрос, но не завершил его обработку. Запрос можно отклонить, поскольку на его выполнение может потребоваться слишком много времени.

203 Non-Authoritative Information

Код ответа 203 означает, что операция прошла успешно, но от кода 200 он отличается указанием источника информации. Данные получены не из первоисточника, а с другого сервера или резервной копии. Возможно, информация устарела, о чем и предупреждает код ответа.

204 No Content

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

205 Reset Content

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

206 Partial Reset

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

207 Multi-Status

Код обозначает мультистатусность ответа: сервер обработал несколько операций,не зависящих друг от друга. Результаты отображаются в теле сообщения как XML-документ с объектом multistatus.

226 IM Used

Сервер успешно завершил операцию: принял заголовок A-IM и вернул содержимое с учетом указанных параметров.

Коды редиректов

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

300 Multiple Choices

Робот не может проиндексировать страницу, поскольку не может сопоставить ресурс и URL. Частая причина — ресурс перемещен на другой адрес. Сервер предлагает клиенту выбор альтернатив для перехода. Для успешной индексации нужно либо правильно указать ресурс, либо поправить заголовки.

301 Moved Permanently

Если у проиндексированной страницы изменился адрес, то со старого URL на новый настраивают 301 редирект. Код ответа показывает, что запрашиваемый документ был навсегда перенесен на другой URL, куда пользователя перенаправляет ссылка. Робот проиндексирует страницу, на которую ведет редирект, и склеит исходный адрес и новый.

302 Found

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

Страница остается в индексе, ссылочный вес продолжает передаваться.

303 See Other

Сервер сигнализирует, что ресурс, который указан в запросе, расположен на другом адресе. Обычно он используется для перенаправления пользователя к выбранному ресурсу выводом данных POST-активированного скрипта.

В ответе сервера будет указан адрес, по которому нужно искать результат, удовлетворяющий запрос.

304 Not Modified

Код рекомендуется выдавать, если страница не менялась с момента ее последнего посещения роботом. Сервер дает сигнал об этом боту, бот получает от документа http-заголовки, не загружая страницу повторно, из-за чего индексирование проходит быстрее и уменьшается нагрузка на сервер.

305 Use Proxy

Код ответа связан с безопасностью данных. Сервер выдает код 305, если доступ к ресурсу, который запрашивает клиент, возможен только с прокси. Прокси указан там же в ответе сервера.

307 Temporary Redirect

Код 307 похож на 302, но дает более конкретный ответ. Код означает, что ресурс, который требует клиент, на время переведен на другой адрес, а новый URL нужно прописать в Location.

Коды ошибок клиента

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

400 Bad Request

Запрос некорректен, где-то в нем есть синтаксическая ошибка, поэтому сервер не может выдать результат. Для успешного выполнения запроса нужно исправить синтаксис, обычно помогает очистка куки или кэша страниц, исправление запроса пользователем.

401 Unauthorized

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

403 Forbidden

Запрос успешно получен и верно сформулирован, но у сервера нет доступа к запрашиваемой странице. Возможно, доступ ограничен специально для определенных IP-адресов с помощью файла .htaccess.

Если пользователю www-data, под которым запущен сервер, закрыт доступ к чтению файла, поможет команда sudo chmod o=r /usr/share/nginx/html/index.html

Еще одна причина — пользователь обратился к закрытому каталогу, в котором нет индексного файла. Разрешение на просмотр каталога включается в настройках сервера.

404 Not Found

Серверу не удалось найти ресурс, который запрашивает пользователь, документа по этому адресу не существует.

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

проверить код ответа сервера

Код ответа 404 Not Found

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

405 Method Not Allowed

Недоступен метод, которым совершается запрос. Сервер выдает этот код для конкретных отдельных объектов на странице. К примеру, строка запроса, запускающая скрипт, отличается от запроса, который совершает пользователь.

406 Not Acceptable

Код ответа означает, что запрашиваемый файл существует, запрос сформулирован верно, но кодировка документа недоступна для расшифровки роботом.

407 Proxy Authentication Required

Этот код похож на 401 и 407, он используется, если вопрос корректен, но клиент может получить доступ к документу только с помощью авторизации через прокси. Клиент авторизуется, если прокси вернет поле с заголовком proxy-authenticate.

408 Request Timeout

Сервер возвращает этот код ответа, если в установленное время ожидания клиент не сделал ни один запрос. Код 408 не возвращается, если пользователь сам отменил запрос, или соединение оборвалось, а отправить ответ нет возможности.

409 Conflict

Код означает, что в системе конфликт: к примеру, пользователь загружает файл на сервер, где уже есть такой файл в новой версии.

410 Gone

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

411 Length Required

Сервер не может принять и обработать запрос, если в заголовке content-length не указана длина контента.

413 Request Entity Too Large

Если в теле запроса слишком большой объем информации и сервер не может обработать такой большой запрос, то он возвращает код ошибки 413. Если это временная проблема, в поле Retry-After сервер укажет время, которое нужно подождать.

414 Request-URL Too Long

Аналогично с кодом 413, за исключением того, что 414 код отображается, если в запросе указан слишком длинный URL.

422 Unprocessable Entity

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

424 Failed Dependency

Если выполнение этой операции зависит от исхода других связанных с ней операций, сервер вернет этот запрос.

429 Too Many Requests

Код 429 означает, что пользователь посылает слишком много запросов за короткий временной промежуток, и сервер не может обработать такое количество.

431 Request Header Fields Too Large

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

451 Unavailable For Legal Reasons

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

418 I’m a teapot

Это забавный код, возвращающий ошибку «Я чайник», связан с гипертекстовым протоколом управления кофеваркой — Hyper Text Coffee Pot Control Protocol. Ошибка означает, что запрос некорректен, с помощью чайника нельзя приготовить кофе. Протокол и код этой ошибки были созданы в шутку в 1998 году к 1 апреля.

Код 418 I’m a teapot

Коды ошибок сервера

Коды этой группы обозначают ошибки на стороне сервера.

500 Internal Server Error

Код обозначает, что сервер не может обработать запрос по причине внутренних ошибок. Обычно проблема в настройке сервера, обращении к некорректному файлу .htaccess или пакету PHP, который не установлен.

501 Not Implemented

Сервер возвращает этот код, когда не может обработать запрос: он не поддерживает возможности для обработки или не может распознать метод. К примеру, эта ошибка появится, если распространенные протоколы HEAD, POST, GET и другие по какой-то причине не поддерживаются сервером.

502 Bad Gateway

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

503 Service Unavailable

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

504 Gateway Timeout

Код похож на 502, но ошибка 504 означает, что истек срок ожидания ответа от сервера. Необходимое количество времени истекло, а ответ от бэкенд-сервера не пришел.

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

506 Variant Also Negotiates

Код ответа 506 означает, что сервер настроен некорректно: ошибка в конфигурации зацикливает обращение сервера, и он указывает сам на себя.

507 Insufficient Storage

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

510 Not Extended

Код 510 возвращается в случае, если сервер не поддерживает расширение, которое указано в запросе. В этом же ответе сервер может указать, какие расширения доступны.

511 Network Authentication Required

Эта ошибка возвращается клиенту, если пользователь не авторизовался в сети. К примеру, если он не согласился на условия использования интернета, когда подключался к wi-fi, или не ввел пароль.


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

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

Я
   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С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

Здесь нам не понадобится секция customErrors , так как обработку всех ошибок мы будем передавать сразу из приложения на уровень сервера, и он уже будет решать что делать. HTTP Services URL: обмен между базами 1С 8 по шаблону через сервис интеграции — что это такое, как с помощью кода обратиться к нему, примеры через POST, методы настройки, способ httpсервисзапрос Обращайтесь в форму связи

HTTP Services URL: обмен между базами 1с с помощью сервиса интерграции — создание и настройка

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

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

Для начала создаем сам serves. Вводим произвольное название, фактически роли это не играет.

А вот сам URL – это куда более важная часть. Именно по этому адресу будет доступен корневой каталог, поэтому заранее определите корректное наименование.

Свойств у только что нами созданного URL немного, а именно одно – шаблон. Это запись, по которой будет доступен путь до serves.

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

А вот у методов уже есть возможность присвоения множества свойств. Таких, как движение, удаление, блокирование, соединение, получение, путь и так далее.

При обращении к системе автоматически будет сопоставлен введенный адрес с имеющимся шаблоном. И если они соответствуют, то в ответ выдается выбранный вами метод. Если же соответствия не произошло, то ответная реакция от HTTP сервиса 1С будет 404, что является кодом ошибки.

Промокоды на Лайм Займ на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 70 000 рублей
  • 🕑Срок: от 7 до 168 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка -10 % по промокоду

Настройка ошибок 404 500 на MVC

Публикация и проверка

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

Итак, если мы все сделали верно, то в случае этого примера, он будет доступен по адресу – localhost/HTTPTest/hs/Obmen/test-parametr/Test/GetInfo?param=value.

  • Localhost – соответственно, сам адрес изначального сервера.
  • HTTPTest – как вы можете наблюдать из скрина, именно такой набор символов мы ввели в названии нашей тестовой публикации.
  • Hs – а вот это важнейшая часть. Это указатель, который дает понятие о том, что происходит именно обращение к 1С HTTP сервису.
  • Obmen – это название корневого каталога, который мы задавали ранее.
  • test-parametr – соответственно, указанный нами изначально метод определения, а точнее, его путь.
  • GetInfo – это уже наименование.
  • param=value – нестрогий вариант параметров.

Уточните у своего хостинг-провайдера о тарифах с большим объемом ресурсов и, в случае необходимости, увеличьте оперативную память или доступный объем диска.

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

В нашем примере мы можем добавить ControllerAdvice так, чтобы при возникновении BookNotFoundException наш API возвращал статус 404 для обозначения Not Found вместо 500 Internal Server Error. 6 наиболее часто возникающих HTTP ошибок и способы их устранения Обращайтесь в форму связи

Дальнейшее чтение:

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

  • 100-уровневый (информационный) — Сервер подтверждает запрос
  • 200-уровень (Успех) — Сервер выполнил запрос, как и ожидалось
  • 300-уровень (Перенаправление) — Клиенту необходимо выполнить дальнейшие действия для завершения запроса
  • 400-level (Ошибка клиента) — Клиент отправил неверный запрос
  • 500-level (Server error) — Серверу не удалось выполнить допустимый запрос из-за ошибки с сервером

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

Как настроить страницу 404 и правильный ответ сервера (http-код страницы): shalenaolena — ЖЖ

  • 400 Плохой запрос — Клиент отправил недопустимый запрос — например, отсутствует требуемое тело запроса или параметр
  • 401 Неавторизованный — Клиенту не удалось пройти аутентификацию на сервере
  • 403 Forbidden — Клиент аутентифицирован, но не имеет разрешения на доступ к запрошенному ресурсу
  • 404 Не найден — Запрошенный ресурс не существует
  • 412 Ошибка предварительного условия — одно или несколько условий в полях заголовка запроса оцениваются как ложные.
  • 500 Внутренняя ошибка сервера — На сервере произошла общая ошибка
  • 503 Услуга Недоступна — Запрошенная услуга недоступна

Примеры

Описанные выше методы являются общими для некоторых наиболее популярных API REST. В то время как конкретные имена полей или форматов могут варьироваться между сайтами, общие шаблоны почти универсальны .

4.1. Твиттер

Например, давайте отправим запрос GET без предоставления необходимых аутентификационных данных:

Горящие товары с бесплатной доставкой

«AliExpress Россия» работает отдельно от глобального «AliExpress» принадлежащего Alibaba. Он не зависит от мировых банковских систем и не попал под санкционный список со стороны США и Великобритании. Из Китая соответственно тоже можно заказывать ничего не опасаясь.

Этот ответ включает в себя список, содержащий одну ошибку, с ее кодом ошибки и сообщением. В случае Twitter нет подробного сообщения, и общая ошибка — а не более конкретная ошибка 401 — используется для обозначения того, что аутентификация не удалась.

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

4.2. Facebook

Например, давайте выполним POST-запрос для аутентификации с помощью API Facebook Graph:

Как и Twitter, Facebook также использует общую ошибку — а не более конкретную ошибку 400-го уровня — для обозначения сбоя. В дополнение к сообщению и числовому коду Facebook также включает в себя поле type , которое классифицирует ошибку, и идентификатор трассировки ( fbtrace_id ), который действует как внутренний идентификатор поддержки .

Уточните у своего хостинг-провайдера о тарифах с большим объемом ресурсов и, в случае необходимости, увеличьте оперативную память или доступный объем диска.

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

В нашем примере мы можем добавить ControllerAdvice так, чтобы при возникновении BookNotFoundException наш API возвращал статус 404 для обозначения Not Found вместо 500 Internal Server Error. Ошибка 404: что это значит и как исправить | HOSTiQ Wiki Обращайтесь в форму связи

Закрыть страницу 404 от индексирования

Замечания по коду: «/404.php» означает путь к странице. Если на вашем сайте страница 404.php (или 404.html соответственно) находится в какой-то папке, то путь будет выглядеть:
/holder/404.php
где «holder» — название папки.

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

Рекомендации по обработке ошибок REST API.

Переадресация (редирект) неправильных url на страницу 404

Очень важно, чтобы при перенаправлении был правильный ответ сервера, а именно – 404 Not Found.

Тут следует объяснить отдельно.
Любому url при запросе назначается статус (http-код страницы).
• Для всех существующих страниц, это: HTTP/1.1 200 OK
• Для страниц перенаправленных: HTTP/1.1 302 Found
• Если страницы не существует, это должен быть HTTP/1.1 404 Not Found

Итак, после краткой теоритической части, вернемся к нашим баранам настройкам.

После того, как вы настроили перенаправление на свою авторскую страницу 404 через .htaccess, как описано выше, то вводя битую ссылку (неверный url, который заведомо не существует), типа http://mysite.com/$%$%, ответ сервера будет:
— сначала HTTP/1.1 302 Found (перенаправление),
— а затем HTTP/1.1 200 OK (страница существует).

Проверьте через bertal.ru.
Чем это грозит? Это будет означать, что гугл в свою базу данных (индекс) может внести все битые ссылки, как существующие страницы с содержанием страницы 404. По сути — дубли страниц. А это невероятно вредно для поисковой оптимизации (SEO).

В этом случае нужно сделать две вещи:
1) Настроить правильный ответ сервера на странице 404.
2) Закрыть от индексирования страницу 404. Это делается через файл robots.txt

Настраиваем ответ сервера HTTP/1.1 404 Not Found для несуществующих страниц

Ответ сервера настраивается благодаря функции php в самом начале страницы:

Пишите ее вначале файла 404.
В результате мы должны получить ответ на битую ссылку:

💥Принимайте участие в опросе и получайте бесплатную консультацию

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

Ошибка 404

Что значит ошибка 404?

Код ошибки 404 – это код статуса ответа HTTP, означающий, что «ресурс в запрашиваемой локации не найден».

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

Сообщение с данной ошибкой выглядит по-разному, в частности вот так:

формы сообщения об ошибке четыреста четыре

Каждое число из данной ошибки имеет своё значение:

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

Экран ошибки 404

Скрин ошибки 404

Error 404

Надеюсь вы поняли, что это 404 ошибка, а теперь перейдём к причинам и устранению проблем с кодом 404.

Причины дисфункции 404

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

Спецификации ошибки 404

Примеры спецификаций ошибки у серверов Майкрософт IIS

При этом сервера Майкрософт IIS часто добавляют специальную информацию по причинам, вызывающим ошибку 404, в частности, HTTP Error 404.1 – «Сайт не найден» и другие.

Как исправить 404 ошибку

Чтобы исправить данную проблему необходимо выполнить следующее:

то наберите просто:

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

Нажмите на «Ок», и перезагрузите ваш ПК;

Настройки публичных DNS

Заключение

Что такое ошибка под номером 404? Обычно ошибка возникает в ситуации, когда пользователь неверно набрал нужный линк, или запрашиваемая пользователем страница ранее была удалена (перемещена) веб-мастером ресурса. Для исправления проблемы рекомендую воспользоваться приведёнными выше советами, они помогут вам избежать появления ошибки четыреста четыре на вашем ПК.

404 ошибка – как настраивать и отслеживать страницу “Не найдено”?

Сайты развиваются: создаются новые разделы, меняется структура, удаляются страницы или переделываются их адреса. Часто за всеми этими процессами уследить очень сложно даже опытному веб-мастеру. Чем старше сайт – тем больше вероятность того, что каждый день он получают процент пользователей, попадающих на страницы, которых больше не существует. Как это отследить? Как оповестить робота и клиента, что таких страниц больше нет? Что показывать пользователю на странице 404? Отвечаю!

404-not-found

404 NOT FOUND – что означает?

Определение: 404 ошибка сервера (not found) — самая распространенная ошибка при пользовании Интернетом, основная причина — ошибка в написании адреса Web-страницы. Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI.”

Для чего нужна 404 страница?

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

Проверить ответ это очень просто, наберите несуществующий адрес страницы тут – https://bertal. ru/.

not-found-404

2. Пользователю необходимо сообщить, что запрашиваемой страницы больше (или вообще) не существует, и предоставить возможность работать с сайтом дальше.

Как настроить ответ сервера?

404 ошибка сервера через htaccess

Если Ваш сервер или CMS не настроены атоматически, то придётся это сделать Вам самим – добавьте в htaccess строчку:

ErrorDocument 404 https://www. site. ru/404.php

Теперь, когда пользователь введёт неверный адрес, то он будет направлен на этот адрес. Страница может располагаться где угодно, но мы для примера поместили ее в корне сайта: /404.php.

404 ошибка сервера в PHP

Велосипеда изобретать не надо – существует специальная функция header, которая успешно поможет Вам это сделать.

header(«HTTP/1.0 404 Not Found»);

Как должна выглядеть страница 404?

Креативные 404 страницы – вред или польза?

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

404

Как отследить, сколько таких пользователей попадают на страницу 404?

Яндекс. Метрика

Для этого удобно использовать “Параметры визитов”.
В код счётчика необходимо добавить строчку: params:window. yaParams||< >>);

Таким образом, должно получиться как-то так:

На самой же странице 404 в любом месте необходимо разместить следующий JS-код:

var url = document. location. pathname + document. location. search var url_referrer = document. referrer; var yaParams = >;

Где url – текущий адрес страницы 404, а url_referrer – адрес, с которого на него попали. Таким образом, мы в Яндекс. Метрике сможем отлеживать не только все 404 страницы, но и адреса, по которым на неё перешли.

params

Google. Analytics

Для отслеживания ошибок используем “события”. Добавляем JS-код в тело страницы:

Где hitType – тип события, eventCategory – категория, eventAction – адрес ошибки, url_referrer – откуда на 404 страницу попали.

events

Как использовать полученные данные?

Если ошибки 404 внутри сайта – исправьте все ссылки на правильные или уберите вовсе. Если эти ссылки с внешних ресурсов? и Вам никак не повлиять на них, то поставьте 301 редирект на максимально релевантные страницы. Любите своих клиентов и не заставляйте их думать или что-то искать на Вашем сайте.

Источники:

https://sdelaicomp. ru/wi-fi/oshibka-404-chto-eto-i-kak-ispravit. html

https://web-optimizator. com/404-not-found/

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

А еще тут будет парочка забавных (и не очень) пикч и анимаций на тему описанных ошибок. Хоть какое-то развлечение.

Ошибки со стороны клиента (4xx)

Для начала перечислим коды ошибок на стороне клиента. Вина за их появление ложится на плечи обоих участников соединения.

400 Bad Request

Такой ответ от браузера можно получить в том случае, если сервер не смог правильно отреагировать на запрос со стороны пользователя. Часто код 400 возникает при попытке клиента получить доступ к серверу без соблюдения правил оформления синтаксиса протокола передачи гипертекста (HTTP). Повторный запрос не стоит отправлять до тех пор, пока не будет исправлена ошибка (или несколько из них). 

401 Unauthorized

Код 401 возникает при попытке клиента получить доступ к серверу, используя неправильные данные для авторизации. По сути, используется, когда пользователь вводит неправильный логин и пароль на ресурсе, где требуется эта информация для входа. Читайте: Как исправить ошибку 401

402 Payment Required

Эта ошибка сообщает клиенту о том, что для успешного выполнения запроса ему необходимо оплатить доступ к серверу. Изначально код 402 должен был стать неким стандартом для цифровой валюты и оплаты контента в сети. Но не срослось. До сих пор нет единого решения по поводу того, как должны выглядеть платежи в сети. Также нет и единого решения по поводу того, как стоит использовать 402. 

Все еще считается, что код существует с расчетом на будущее. Сейчас почти не используется и поддерживается не всеми браузерами.

403 Forbidden

Почти то же, что и 401. Сервер снова не разрешает к нему подключиться, хотя с запросом все в порядке. Просто нет доступа. Причем повторная авторизация с другими логином и паролем никак не помогут. Все вопросы к владельцам сервера (но не всегда). Инструкция по устранению ошибки. 

Анимация на тему 403 

Творчество на тему знаменитой киносаги

404 Not Found

Легендарная ошибка, ставшая популярным мемом. 404 оповещает клиента о том, что его запрос ведет в никуда. Код возникает, когда пользователь пытается попасть на страницу, которой не существует. Например, когда случайно ошибается при вводе ссылки и вводит ее с опечаткой. Или же пытается получить доступ к странице, которой на сайте уже нет. 

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

Ошибка 404

Еще вариант оформления ошибки 404

И таких вариаций тысячи. Каждый пытается добавить в оформление что-то свое.

405 Method Not Allowed

405 сообщает клиенту о том, что метод, используемый при запросе, не разрешен. В качестве примера можно привести попытку со стороны клиента ввести данные в форму с помощью GET, когда она работает только с POST. Ну и в таком же духе. 

406 Not Acceptable

Ошибка 406 сообщает о том, что страница передает контент, который не может быть распознан клиентом. Возможно, проблема в методе сжатия или в формате страницы. Иногда сюда же приплетают неправильные настройки кодировки.

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

407 Proxy Authentication Required

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

408 Request Timeout

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

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

Кадр из фильма Мистер Робот 

В Мистере Роботе частенько называли серии в честь ошибок HTTP (весь четвертый сезон в нумерации 4хх). В честь 408, например, назвали восьмую серию четвертого сезона

409 Conflict

Сообщение о конфликте возникает, когда запрос со стороны клиента не соответствует тому, чего ожидает сервер. В качестве примера приводят проблемы при проверки версий, когда пользователь пытается с помощью метода PUT загрузить на сервер новый файл, но там уже имеется более новая версия того же файла. Конфликта версий можно легко избежать, загрузив корректную версию.

410 Gone

Своего рода аналог 404. Разница лишь в том, что 410 намекает на перманентность отсутствия страницы. Так что этот код стоит использовать, когда на 100% уверен, что страница ушла в небытие (ну или с текущего адреса) навсегда. В любом другом случае есть универсальный 404. 

411 Length Required

411 оповещает пользователя о том, что сервер не желает принимать запрос со стороны клиента, потому что в нем не определен заголовок Content-Length. Да, это первый код в подборке, который смогут понять только люди, сведущие в настройке серверов. По-простому уложить сущность HTML-заголовков в этот материал не получится.

412 Precondition Failed

Еще один код, сообщающий о том, что сервер отклонил запрос пользователя и не разрешает доступ к выбранному ресурсу. Проблемы возникают при неправильной настройке работы методов, отличающихся от GET и HEAD. 

413 Payload Too Large/Request Entity Too Large

Код 413 говорит нам, что запрос, который посылает клиент на сервер, слишком большой. Поэтому сервер отказывается его обрабатывать и разрывает соединение. Обычно это происходит при попытке загрузить на ресурс какой-то файл, превышающий ограничение, выставленное в настройках сервера. Соответственно, решается проблема изменением настроек сервера. 

414 URI Too Long

Чем-то этот код похож на предыдущий. Здесь тоже идет речь о превышение лимита. Только теперь это касается не запроса со стороны клиента, а длины URI. То есть ссылки. Выходит, что адрес, используемый клиентом, больше, чем тот, что может обработать сервер. Как-то так. 

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

415 Unsupported Media Type

Ошибка 415 возникает, когда клиент пытается загрузить на сервер данные в неподходящем формате. В таком случае сервер просто отказывается принимать посылаемые файлы и разрывает соединение. Как и в случае с 413. 

416 Range Not Satisfiable

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

417 Expectation Failed

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

418 I’m a teapot

Код 418 можно увидеть, если сервер откажется варить кофе, потому что он чайник. Это первоапрельская шутка. Естественно, 418 не используется нигде всерьез и просто существует как дань памяти программистам-юмористам, придумавшим это в 1998 году.

Чайник на сайте Google

У Google получился такой симпатичный чайник

421 Misdirected Request

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

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

422 Unprocessable Entity

Код 422 говорит, что сервер вроде бы принял запрос, понял его, все хорошо, но из-за семантических ошибок корректно обработать не смог. Значит, где-то в запросе затаилась логическая ошибка, мешающая корректному взаимодействию клиента и сервера. Надо ее найти и исправить.

423 Locked

Обычно на этот код напарываются, когда запрашиваемый ресурс оказывается под защитой. Используемые клиентом методы блокируются на уровне сервера. Это делается, чтобы обезопасить данные, хранящиеся на защищенной странице. Без логина и пароля выудить информацию с такого сервера не получится.

424 Failed Dependency

424 сообщает о том, что для выполнения запроса со стороны клиента успешно должна завершиться еще одна или несколько параллельных операций. Если какая-то из них «провалится», то «помрет» все соединение сразу, и обработать запрос до конца не получится. Аналогичное происходит, если некорректно был обработан один из предыдущих запросов.

425 Too Early

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

426 Upgrade Required

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

428 Precondition Required

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

429 Too Many Requests

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

Ошибка 429

431 Request Header Fields Too Large

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

444 No Response

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

449 Retry With

Код используется в расширениях компании Microsoft. Он сигнализирует о том, что запрос от клиента не может быть принят сервером. Причиной становятся неверно указанные параметры. Сама 449 ошибка говорит о необходимости скорректировать запрос и повторить его снова, подготовив к работе с сервером.

450 Blocked by Windows Parental Controls

450 код увидят дети, попавшие под действие системы «Родительский контроль» компании Microsoft. По сути, ошибка говорит о том, что с компьютера попытались зайти на заблокированный ресурс. Избежать этой ошибки можно изменением параметров родительского контроля.

451 Unavailable For Legal Reasons

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

Лого Роскомнадзора

Читайте также

Ошибка сервера 504

Ошибка сервера 403

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Список ошибок на стороне сервера (5xx)

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

500 Internal Server Error

Этот код возникает, когда сервер сталкивается с непредвиденными обстоятельствами. Такими, которые и сам не может пояснить. Как, собственно, и завершить запрос со стороны пользователя. По факту, эта ошибка говорит нам что-то вроде «Я не могу подобрать более подходящий код ошибки, поэтому лови 500 и делай с этим, что хочешь». Мы писали о нем чуть подробнее тут.

Ошибка 500

Дело не в тебе, дело во мне (С)

 Синий экран смерти

501 Not Implemented

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

Иногда в теле ошибки еще пишут что-то в духе «Приходите попозже, возможно, в будущем нужная функция появится».

502 Bad Getaway

Можно встретить в том случае, если запрашиваемый сервер выступает в роли шлюза или прокси. Возникает из-за несогласования протоколов между вышестоящим серверов и его шлюзом. Рассказываем о том, как ее исправить, в этой статье. 

503 Service Unavailable

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

  1. Слишком много пользователей в текущий момент пытаются отправить запросы, и у сервера не остается ресурсов, чтобы ответить кому-либо еще.
  2. На сервере ведутся технические работы, временно блокирующие его работу.

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

504 Gateway Timeout

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

 Вариант оформления ошибки 504

505 HTTP Version Not Supported

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

506 Variant Also Negotiates

Обычно с такой ошибкой сталкиваются только в том случае, если сервер изначально настроен неправильно. То есть это не сиюминутная проблема, а что-то серьезное на уровне базовой конфигурации. Тут придется потрудиться разработчикам. Выявить проблему и разрешить ее.

507 Insufficient Storage

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

508 Loop Detected

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

509 Bandwidth Limit Exceeded

Возникает, если сервер начинает потреблять больше трафика, чем ему позволено. 

510 Not Extended

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

511 Network Authentication Required

511 код говорит о том, что перед тем как выйти в сеть, надо авторизоваться (ввести логин и пароль). Можно воспринимать это неким PPPoE подключением, когда от клиента требуются данные для авторизации.

Заключение

Закончили. Это все ошибки, которыми отзывается HTTP, если на стороне сервера или клиента что-то пошло не так. Наткнуться на большую их часть довольно тяжело. Особенно, если вы раньше только серфили в интернете, а не занимались разработкой сайтов. А тем, кто входит в эту стезю, полезно знать основные ошибки, так как, скорее всего, придется не раз их исправлять. 

  • При сохранении сертификата возникла ошибка выбора криптопровайдера ошибка 1015
  • При создании описания сервиса произошла ошибка url сервиса код ответа сервера 403
  • При сохранении настроек возникла ошибка не удалось записать начисление
  • При создании описания сервиса произошла ошибка url сервиса код ответа сервера 400
  • При сохранении настроек возникла ошибка значение не является значением объектного типа отборведущих