Возможные проблемы#
Проблема версий СМЭВ#
Error: component is not compatible with the application

Решение: последовательная установка компонентов Common.SMEV и Project.SMEV в режиме db-migrate-standalone.
Важно
Запускаем команды из директории, в которой установлена Система.
Устанавливаем общий компонент Common.SMEV следующей командой:
В <> взяты настройки, которые необходимо заменить на свои значения.
dotnet gems.cli.dll db-migrate-standalone -c 'Server=<host>;Port=5432;Database=<isogd>;UserId=<postgres>;Password=<пароль>' -o 'Common.SMEV'
Пример успешно выполненной команды:

Устанавливаем проектный компонент Project.SMEV:
dotnet gems.cli.dll db-migrate-standalone -c 'Server=<host>;Port=5432;Database=<isogd>;UserId=<postgres>;Password=<пароль>' -o ' Project.SMEV'
Пример успешно выполненной команды:

Выполняем перезапуск сервиса СМЭВ, выводим журнал сервиса.
Проблема подписи#
Error: подпись документа завершилась с ошибкой

Решение: устранение неполадок сервиса подписи Grad.Signature.Service.
Проверяем сервис подписи командой:
netstat -na | grep ".*5077.*"
Пример успешного выполнения команды (порт 5077 прослушивается):

Проверяем сертификат, номер которого должен совпадать с указанным в конфигураторе:
/opt/cprocsp/bin/amd64/certmgr –list

Проверяем команду установки Java CSP, путь установки должен совпадать с указанным в сервисе подписи Grad.Signature.Service. Посмотреть настройки данного сервиса можно по адресу: /etc/systemd/system/Grad.Signature.Service.service.

Ошибка обработки СМЭВ#
Error: ошибка при обработке ответа для вида сведений

Решение: проверить доступ до сервера СМЭВ.
Пингуем доступ к серверу СМЭВ командой:
wget http://<172.20.3.12:7500/smev/v1.1/ws?wsdl>
В <> взяты настройки, которые необходимо заменить на свои значения.

Запрос от сервиса не доходит до сервера СМЭВ. Возможно, не настроен или некорректно настроен защищённый канал. В случае, если при воспроизведении в тестовом контуре СМЭВ ошибок не возникает, проблема на стороне Заказчика.
При корректном доступе к серверу СМЭВ, результат должен быть такой:

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

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

При смене сертификатов информационной системы (электронной подписи ОИВ) необходимо подавать заявку на изменение информационной системы в связи с изменением сертификата в продуктивной и тестовой среде. В работе СМЭВ 3 можно не подавать заявки, а изменить информацию в Личном кабинете участника взаимодействия.
Ошибка cpcsp: CreateUserCryptObject key_carrier_get_material_with_public fail#
После установки контейнера, и например попытке авторизации через ЕСИА в сервисе подписи может быть ошибка:
мар 21 13:30:53 astra java[19511]: 13:30:53.834384 support_an_fopen:87 p:19511 t:0x0x7025a52d2960 support_an_fopen("/var/opt/cprocsp/users/root/policies.ini", "rb") = 0x(nil) fail Нет такого файла или каталога(2)
мар 21 13:30:53 astra java[19511]: 13:30:53.834767 support_an_fopen:87 p:19511 t:0x0x7025a52d2960 support_an_fopen("/var/opt/cprocsp/users/root/policies.ini", "rb") = 0x(nil) fail Нет такого файла или каталога(2)
мар 21 13:30:53 astra Grad.Signature.Service[19511]: CryptoPro CSP: Type password for container "51mjegnho93k6yr4wb7wlx4djd685afqb1a5hxn"
мар 21 13:30:53 astra java[19511]: cpcsp: CreateUserCryptObject key_carrier_get_material_with_public fail
Для её исправления можно перезадать пароль на контейнер в конфигураторе:

Ошибка duplicate key value violates unique constraint «d_smev_out_req_mv_msg_linked_out_req_ias_key»#
В логах СМЭВ может возникнуть ошибка Npgsql.PostgresException (0x80004005): 23505: duplicate key value violates unique constraint «d_smev_out_req_mv_msg_linked_out_req_ias_key.

Для решения проблемы используйте скрипт src\Подсистемы\Межведомственные запросы\Скрипт для ремонта запросов GM-10024\smev_fix_statuses — ORNB23-6.sql
Не появляется вкладка «СМЭВ» в панели интеграции#
У пользователя, с которым система считывает настройки (чаще всего, ias), нет доступа к схеме cooperation.
Следует предоставить ему такие права, выполнив запрос в БД:
do
$$
declare
rec record;
to_user_name varchar(40):='ias';
tdatname varchar(40):=current_database();
tUseSchema text:='cooperation';
begin
for rec in(select 'alter schema '||nspname||' owner to '||to_user_name||';' as query from pg_namespace where nspname=tUseSchema)
loop
execute rec.query;
end loop;
for rec in(SELECT 'ALTER TABLE '|| schemaname || '."' || tablename ||'" OWNER TO '||to_user_name||';' as query FROM pg_tables WHERE schemaname=tUseSchema)
loop
execute rec.query;
end loop;
for rec in(SELECT 'ALTER SEQUENCE '|| sequence_schema || '."' || sequence_name ||'" OWNER TO '||to_user_name||';' as query FROM information_schema.sequences WHERE sequence_schema=tUseSchema)
loop
execute rec.query;
end loop;
for rec in(SELECT 'ALTER VIEW '|| table_schema || '."' || table_name ||'" OWNER TO '||to_user_name||';' as query FROM information_schema.views WHERE table_schema=tUseSchema)
loop
execute rec.query;
end loop;
for rec in(SELECT 'ALTER TABLE '|| oid::regclass::text ||' OWNER TO '||to_user_name||';' as query FROM pg_class WHERE relkind = 'm')
loop
execute rec.query;
end loop;
for rec in(select 'ALTER FUNCTION '||routine_schema||'.'||routine_name||'() OWNER TO '||to_user_name||';' as query from information_schema.routines where routine_schema=tUseSchema)
loop
begin
execute rec.query;
exception when others then
raise info '%',rec.query;
end;
end loop;
end$$;
Вкладка «СМЭВ» станет доступна.
Не уходят запросы в СМЭВ#
После получения доступа до Продуктива в СМЭВ в логах возникает ошибка:

В карточке объекта статус «Готов к отправке» остаётся неизменным.

Для устранения проблемы:
Выполните проверку доступа до сервера СМЭВ:
wget http://<172.20.3.12:7500/smev/v1.1/ws?wsdl>
Корректный результат проверки должен выглядеть так:

Скачайте файл
testEgrn.xml
. Положите его на серевер в любое удобное место. Выполните запрос на сервере приложений:
curl -X POST -H 'Accept: application/xml' -H 'KeepAlive: true' -H 'SOAPAction: SendRequest' --data "@Путь до файла testEgrn.xml" -v 'http://172.20.3.12:7500/smev/v1.1/ws?wsdl'
На месте «@Путь до файла testEgrn.xml» пропишите в двойных кавычках путь до файла testEgrn.xml и @ перед ним.
Пример:
curl -X POST -H 'Accept: application/xml' -H 'KeepAlive: true' -H 'SOAPAction: SendRequest' --data "@/home/tmp/testEgrn.xml" -v 'http://172.20.3.12:7500/smev/v1.1/ws?wsdl'
Когда запрос выше начнет проходить, ошибка будет исправлена.
Примечание
Если Система выводит сообщение «Соединение разорвано с другой стороны», сообщите об этом системным администраторам.
