Имеется сервер RPD с файловой базой.
На нем же установлен и настроен IIS.
Есть сайт, который подключается к базе по http-сервису, и забирает данные по товару - нестандартная выгрузка товаров на сайт (делал не я).
Все нормально работало до недавнего момента.
На днях в базе пришлось капитально обработать данные (решал проблему с ГТД в УТ 11).
На случай, если что-то не получится, сделал следующее, чтобы можно было быстро и без ущерба для всего (сайта, баз бухгалтерии и пр.) откатиться назад.
Я отрубил все синхронизации с БП, выключил IIS через стандартную оснастку, переименовал папку с базой - полностью отключил рабочую базу от "внешнего мира". Скопировал базу, и работал в копии. Если бы у меня не получилось задуманное, я бы удалил копию, а переименованную папку с рабочей базой переименовал бы обратно, и все включил бы обратно.
В итоге у меня все получилось сделать как задумывал, поэтому переименованную рабочую базу удалил (бэкап само собой был сделан до всех манипуляций), копию папки с базой, в которой работал, переименовал, как называлась папка с рабочей базой до этого - в итоге копия базы стала рабочей.
Включил все синхронизации в базе (включил регламентные задания и пр), включил IIS в оснастке.
IIS перезапускал, даже сервер перезагружал - ничего не помогло.
И после этого сайт перестал подключаться к базе.
Код состояния 502
Это строка лога IIS (в квадратных скобах замененные значения) с ошибкой:
2023-03-16 07:16:44 10.27.11.10 GET [здесь адрес с базой] - 443 [пользователь] [адсре сайта] GuzzleHttp/7 - 502 0 0 1000134
А это строка лога, когда все работало:
2023-03-12 00:00:17 10.27.11.10 GET [здесь адрес с базой] - 443 [пользователь] [адсре сайта] GuzzleHttp/7 - 200 0 0 10927
Настройки публикации в конфигураторе не трогал. Дата изменения файла публикации "default.vrd" старая, т.е. файл не изменен.
Причина скорее всего точно в моих действиях, но я не могу понять, что произошло и как исправить.
После долгих попыток настроек все таки заработало. Была также ошибка 500, но в тему уже не могу её добавить. В общем, что привело к решение (не факт, что все это, и возможно что-то забыл упомянуть:
1) Папке с базой дать права на изменение группам "IIS_IUSRS" и "IUSR". В инструкциях почему-то указана только группа IIS_IUSRS.
2) Инструкция Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5, но в моем случае был нюанс:
2.1) в п.10 указано, что нужно включить опцию "Разрешены 32-разрядные приложения" - в моем случае её нужно как раз отключить (после этого последнего шага у меня все заработало). У меня стоит 64-х разрядная 1С, ОС тоже 64-х разрядная. Изначально эта опция была выключена, потом я её включил, согласно инструкции, потом опять вырубил.
2.2) запуск конфигуратора от имени Администратора для публикации базы. Это есть в инструкции, но по началу я этим пренебрёг, т.к. работал на сервере под админом, и посчитал, что это достаточно. Как раз при публикации 1С ругалась, что нет прав на папку с базой данных у группы "IUSR".
3) Возможно пригодится, если будете использовать п. 2.1 - перезапускать пул приложений DefaultAppPool (там же оснастке IIS - Диспетчер служб IIS в панели управления в Администрировании). Написал на всякий случай, т.к. пулы перезагружаются отдельно от самой службы (может перезапуска службы и достаточно).
Удалил блок с новым сервисом из файла публикации вручную, так, чтобы файл публикации после стал таким же как до, перезапустил IIS - ошибка 404. Странно то, что данные в файле идентичны тому, когда ошибка была 502.
После долгих попыток настроек все таки заработало. Была также ошибка 500, но в тему уже не могу её добавить. В общем, что привело к решение (не факт, что все это, и возможно что-то забыл упомянуть:
1) Папке с базой дать права на изменение группам "IIS_IUSRS" и "IUSR". В инструкциях почему-то указана только группа IIS_IUSRS.
2) Инструкция Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5, но в моем случае был нюанс:
2.1) в п.10 указано, что нужно включить опцию "Разрешены 32-разрядные приложения" - в моем случае её нужно как раз отключить (после этого последнего шага у меня все заработало). У меня стоит 64-х разрядная 1С, ОС тоже 64-х разрядная. Изначально эта опция была выключена, потом я её включил, согласно инструкции, потом опять вырубил.
2.2) запуск конфигуратора от имени Администратора для публикации базы. Это есть в инструкции, но по началу я этим пренебрёг, т.к. работал на сервере под админом, и посчитал, что это достаточно. Как раз при публикации 1С ругалась, что нет прав на папку с базой данных у группы "IUSR".
3) Возможно пригодится, если будете использовать п. 2.1 - перезапускать пул приложений DefaultAppPool (там же оснастке IIS - Диспетчер служб IIS в панели управления в Администрировании). Написал на всякий случай, т.к. пулы перезагружаются отдельно от самой службы (может перезапуска службы и достаточно).
(11) Папке с базой не нужны права группы IIS-IUSRS, только IUSR, либо другого пользователя, которого можно прописать в настройках IIS(проверка подлинности)