Диагностика и устранение неполадок
Продукты: МоиОтчеты Корпоративный Сервер
Если при установке или запуске приложения возникли проблемы, данный раздел поможет вам в их устранении.
Миграции
Корпоративный сервер предусматривает автоматическое применение миграций при запуске приложения. Ручное управление миграциями, как правило, не предусмотрено для конечного пользователя.
Хотя сервер имеет встроенный механизм восстановления после сбоев, определённые проблемы могут быть вызваны внешними факторами — например, отключением питания или потерей соединения с базой данных.
Если во время выполнения миграций произойдёт разрыв соединения с базой данных, система активирует режим блокировки и предотвратит запуск бэкенда для защиты целостности базы данных. В таком случае потребуется ручное восстановление состояния миграций.
Важно: Рекомендуется всегда создавать резервную копию базы данных перед обновлением версии корпоративного сервера. Это позволит оперативно восстановить работоспособность системы в случае возникновения ошибок.
Если резервная копия отсутствует, можно воспользоваться инструментами разработчика. Следует учитывать, что использование этих инструментов может привести к потере данных, однако они позволяют восстановить целостность базы данных и обеспечить стабильную работу сервера.
Для ознакомления с инструментами разработчика перейдите в соответствующий раздел.
Инструменты разработчика
Стандартная поставка корпоративного сервера поддерживает развертывание с использованием docker-compose и Kubernetes. В данной документации рассматриваются только эти два способа развертывания.
Если у вас возникли сложности или требуется дополнительная помощь, вы можете обратиться в нашу службу технической поддержки.
Docker
Чтобы использовать инструменты разработчика, необходимо временно остановить работающий экземпляр бэкенда. Выполните следующие команды:
- Проверка состояния контейнеров
Получите список запущенных контейнеров:
docker-compose -f /путь/к/папке/docker-compose.yml ps
Обратите внимание: для выполнения всех команд необходим файл
docker-compose.yml. Убедитесь, что текущая директория содержит этот файл, либо указывайте путь к нему с помощью параметра-f.
- Остановка контейнера бэкенда
Остановите нужный контейнер (например, fr-backend):
docker-compose -f /путь/к/папке/docker-compose.yml stop fr-backend
- Запуск контейнера с инструментами разработчика
Для работы с инструментами разработчика создайте новый контейнер и подключите его к той же сети, которая используется в docker-compose.yml.
Сначала проверьте доступные сети:
docker network ls
Затем выполните команду запуска контейнера. Не забудьте заменить debian-2026.2.13 на актуальный тег, который указан в вашем файле docker-compose.yml:
docker run -it --network corporate_fr-cs -v /путь/к/папке/appsettings.Production.json:/app/appsettings.Production.json fastreport-corporate-server-backend:debian-2026.2.13 /bin/bash
После входа в контейнер запустите утилиту:
dotnet FastReport.Cloud.Backend.dll -- --corporate-dev-tools
Следуйте инструкциям, отображаемым в терминале. После завершения работы выйдите из контейнера:
exit
- Перезапуск основного сервиса
После использования инструментов разработчика перезапустите бэкенд:
docker-compose -f /путь/к/папке/docker-compose.yml start fr-backend
Kubernetes
Для использования инструментов разработчика необходимо временно остановить работающий экземпляр бэкенд-сервиса. Выполните следующие шаги:
- Проверка состояния deployment
Получите список запущенных deployment-объектов. Обратите внимание на количество активных реплик — это значение потребуется на следующем этапе:
kubectl get deployments --namespace fr-corporate
Важно: укажите корректное пространство имён. В данном примере используется
fr-corporate.
- Остановка подов путём масштабирования до нуля реплик
Установите количество реплик равным нулю, чтобы остановить соответствующие поды:
kubectl scale --replicas=0 deployment/fr-backend --namespace fr-corporate
- Запуск контейнера с инструментами разработчика
Создайте файл my-debug-pod.yml со следующим содержимым:
apiVersion: v1
kind: Pod
metadata:
name: my-debug-pod
namespace: fr-corporate
spec:
containers:
- name: app
image: fastreport-corporate-server-backend:debian-2026.2.13
command: ["/bin/bash"]
args: ["-c", "while true; do sleep 10; done"]
tty: true
volumeMounts:
- mountPath: /app/appsettings.Production.json
name: config-volume
subPath: appsettings.Production.json
volumes:
- name: config-volume
configMap:
name: fast-report-config
items:
- key: appsettings.Production.json
path: appsettings.Production.json
defaultMode: 420
Примените манифест:
kubectl apply -f my-debug-pod.yml --namespace fr-corporate
- Подключение к поду
Подключитесь к созданному поду:
kubectl exec -it my-debug-pod --namespace fr-corporate -- /bin/bash
Запустите утилиту разработчика:
dotnet FastReport.Cloud.Backend.dll -- --corporate-dev-tools
Следуйте инструкциям в терминале. По завершении работы выйдите из контейнера:
exit
- Удаление отладочного пода
После выполнения всех операций удалите временный под:
kubectl delete pod my-debug-pod --namespace fr-corporate
- Восстановление количества реплик
Верните deployment к исходному количеству реплик (например, 1):
kubectl scale --replicas=1 deployment/fr-backend --namespace fr-corporate