Имя: Пароль:
1C
 
Веб сервис Ошибка 500 при вызове метода
0 Mary01
 
07.04.23
13:36
Всем добрый день!

Подскажите пожалуйста как исправить ошибку 500 при вызове метода веб-сервиса.

База опубликована на IIS сервере.
Делаю запрос (в Postman, Boomerang, Arc - результат идентичен).
https://itservice.ru/exchange/ws/exchangeAB?wsdl - получаю ответ 200 и перечисление всех методов, которые есть в этом сервисе.
Далее делаю запрос по этому же адресу, но в Body указываю конкретный метод:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exc="http://www.exchangeAB.ru">
<soapenv:Header/>
<soapenv:Body>
<exc:GetChecks/>
</soapenv:Body>
</soapenv:Envelope>

и получаю ошибку 500.Internal Server Error
1 Галахад
 
гуру
07.04.23
13:48
В методе ошибков нету?
2 Mary01
 
07.04.23
13:50
(1) нет, та же самая конфигурация отрабатывает правильно на другом сервере
3 vicof
 
07.04.23
13:51
(2) Есть, 500 ошибка, это 99% ошибка в коде
4 vicof
 
07.04.23
13:52
Говорят, можно включить отладчик на отлов вызовов методов веб-сервисов и остановку по ошибке поставить.
5 Галахад
 
гуру
07.04.23
13:57
(2) Для проверки можно урезать метод до банального ответа и проверить взлетит ли.
6 lodger
 
07.04.23
14:14
(5) завернуть всё что есть в методе в попытку, при исключении в ответ отдавать описаниеошибки
7 arsik
 
гуру
07.04.23
16:14
(4) (5) (6) А можно просто ошибку посмотреть в журнале регистраций 1С.
8 lodger
 
07.04.23
16:29
(7) это не спортивно!
9 BaZZiL
 
07.04.23
17:20
Так-то в Постмане оно даже пишет номер строки модуля, в которой произошла ошибка. Но это при публикации на Апаче.

(3) Обычный синтаксический контроль не работает. Конфигурация -Проверка галочка "Сервер".

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

(4) Отладка-Подключение. "Автоматическое подключение" - Галочка "Web сервисы".
10 vicof
 
07.04.23
18:14
(9) Да я-то знаю. Это тонкий намек для ТС был
11 ДедМорроз
 
08.04.23
15:26
Ошибка может быть в коде получения параметров сеанса,который начинается до вызова кода web-сервиса.
12 Mary01
 
20.04.23
08:14
Всем привет, в итоге проблема была с кодом, а не с сервером. а точнее с правами доступа - у пользователя, под которым выполнялся запрос, не было прав на справочник, данные из которого нужно было получить.
Спасибо! Помогло урезать метод до банального ответа - закомментировала весь код кроме конечного ответа - получила ответ 200 (ок), потом из кода стало понятно, что не хватает прав. После добавления прав пользователю все заработало!
Отладчиком я не пользовалась потому что на рабочих серверах по традиции отладка отключена (а на тестовом сервере всё работало).
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший