Гид по технологиям

Как исправить rsUnhandledHttpApplicationError в SSRS и Power BI

5 min read Техническая документация Обновлено 04 Dec 2025
Исправление rsUnhandledHttpApplicationError в SSRS
Исправление rsUnhandledHttpApplicationError в SSRS

Скриншот сообщения об ошибке rsUnhandledHttpApplicationError

Полное сообщение об ошибке: The report server encountered an unhandled exception in HttpApplication. (rsUnhandledHttpApplicationError). Ниже приведены практические шаги для диагностики и устранения ошибки.

Как исправить rsUnhandledHttpApplicationError?

1. Проверка отсутствующих сборок

  1. Подключитесь к серверу, где установлен SQL Server Reporting Services (SSRS).

  2. Откройте Проводник и перейдите в каталог установки SSRS, обычно:

    C:\Program Files\Microsoft SQL Server\MSRSxx.MSSQLSERVER\Reporting Services\ReportServer

  3. Откройте папку bin и убедитесь, что в ней присутствуют следующие сборки:

  • Microsoft.ReportingServices.Authorization.dll
  • System.Web.Extensions.dll
  1. Если какие‑то файлы отсутствуют, скопируйте их с рабочего сервера SSRS или восстановите из надёжного источника/резервной копии.
  2. Перезапустите службу Reporting Services: откройте Services, найдите «SQL Server Reporting Services» и выберите Restart.

Важно: отсутствие ключевых DLL часто приводит к ошибкам загрузки модулей и выбросу необработанных исключений в HttpApplication.

2. Обновление rsreportserver.config и MachineKey

  1. Откройте Проводник и перейдите в папку конфигурации SSRS:

    C:\Program Files\Microsoft SQL Server\MSRSxx.MSSQLSERVER\Reporting Services\ReportServer

  2. Найдите файл rsreportserver.config и откройте его в редакторе (Notepad, Notepad++ или другой).

  3. Убедитесь, что в конфиге корректно задан узел MachineKey. Пример строки, которую нужно сверить/вставить:

  1. Сохраните файл и закройте редактор.
  2. Перезапустите SQL Server Reporting Services.

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

3. Включите удалённые ошибки (EnableRemoteErrors)

  1. Откройте SQL Server Management Studio (SSMS) и подключитесь к экземпляру Reporting Services.
  2. В Object Explorer щёлкните правой кнопкой по серверу SSRS и выберите Properties.
  3. Перейдите на вкладку Advanced.
  4. Найдите свойство EnableRemoteErrors и установите значение True.
  5. Нажмите OK и перезапустите службу SQL Server Reporting Services.

Пояснение: включение удалённых ошибок помогает получить подробный стек исключения при удалённом подключении и ускоряет диагностику.

4. Настройка таймаутов SSRS

  1. Откройте SSMS и подключитесь к Reporting Services.

  2. В Object Explorer правой кнопкой по серверу Reporting Services → Properties.

  3. На вкладке Advanced найдите SystemReportTimeout.

  4. Установите значение, например, 14400 (секунд) для длинных отчётов:

    Настройка SystemReportTimeout в SSMS

  • Перейдите в раздел Reports.
  • Найдите свойство SystemReportTimeout.
  • Смените значение на 14400.
  1. Перезапустите службу Reporting Services.

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

Дополнительные приёмы и сценарии

Когда эти шаги не помогают — альтернативные подходы

  • Проверьте журнал приложений Windows и лог SSRS (обычно в папке LogFiles) на подробный стек ошибок.
  • Временно включите детальный режим логирования (trace) для отчётов, чтобы увидеть, на какой стадии происходит исключение.
  • Проверьте права доступа к файловой системе и конфигурационным файлам: проблемы с разрешениями могут блокировать чтение DLL или конфигов.
  • Если недавно устанавливали патчи/обновления .NET или SSRS — попробуйте откатить изменения в тестовой среде.

Быстрая чеклиста для ролей

  • Администратор сервера:

    • Проверить наличие DLL в папке bin.
    • Убедиться, что служба SSRS запущена от корректной учетной записи.
    • Проверить права на папки ReportServer и LogFiles.
  • BI‑разработчик:

    • Включить EnableRemoteErrors для получения стека.
    • Тестировать проблемный отчёт локально в Report Builder/SSMS.
  • DBA:

    • Проверить целостность базы ReportServer.
    • Посмотреть блокировки и длительные транзакции, влияющие на выполнение отчётов.

Краткий план действий (SOP) при инциденте

  1. Сбор информации: скриншот ошибки, лог SSRS, время появления.
  2. Включить EnableRemoteErrors и воспроизвести ошибку для получения стека.
  3. Проверить папку bin на отсутствующие сборки.
  4. Проверить и обновить rsreportserver.config (MachineKey).
  5. Увеличить SystemReportTimeout при необходимости.
  6. Перезапустить службу и мониторить логи 15–30 минут.
  7. Если ошибка повторяется — собрать дамп процесса и обратиться к команде разработки.

Решения, которые иногда вызывают проблему (контрпримеры)

  • Копирование DLL из непроверенного источника может привести к несовместимости версий и новым ошибкам.
  • Случайная генерация нового MachineKey без согласования с другими узлами в кластере/веб‑ферме приведёт к ошибкам расшифровки.

Диагностическое дерево принятия решений

flowchart TD
  A[Ошибка rsUnhandledHttpApplicationError] --> B{Появляется стек ошибок?}
  B -- Да --> C[Включить EnableRemoteErrors и получить стек]
  B -- Нет --> D[Проверить логи SSRS и Event Viewer]
  C --> E{В стеке указана missing assembly?}
  E -- Да --> F[Проверить /ReportServer/bin на DLL и версии]
  E -- Нет --> G{Ошибка шифрования/дешифрования?}
  G -- Да --> H[Проверить MachineKey в rsreportserver.config]
  G -- Нет --> I[Проверить таймауты и права доступа]
  I --> J[Увеличить SystemReportTimeout и проверить права]
  F --> K[Скопировать/восстановить DLL и перезапустить службу]
  H --> L[Синхронизировать MachineKey и перезапустить]

Критерии приёмки

  • Ошибка rsUnhandledHttpApplicationError больше не появляется в течение 24 часов при тех же условиях.
  • Стек ошибок при воспроизведении либо отсутствует, либо указывает на другой, решаемый компонент.
  • Отчёты, ранее падавшие с таймаутом, завершаются успешно или корректно логируют причину задержки.

Краткий глоссарий

  • SSRS — компонент Microsoft для публикации и выполнения отчётов.
  • rsreportserver.config — основной конфигурационный файл Report Server.
  • MachineKey — ключи для валидации и дешифровки между компонентами ASP.NET/SSRS.

Часто задаваемые вопросы

Что делать, если я не уверен, какую сборку копировать?

Проверьте версию SSRS на рабочем сервере и копируйте сборки из той же версии. Использование DLL из другой версии может усугубить проблему.

Можно ли генерировать новый MachineKey автоматически?

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

Если нужно, оставьте вопросы в комментариях ниже — укажите версию SSRS/Power BI Server и точный текст ошибки.

Вывод

Следуйте этому плану: проверьте сборки, убедитесь в корректности rsreportserver.config и MachineKey, включите удалённые ошибки для диагностики и при необходимости увеличьте SystemReportTimeout. Эти шаги закрывают большинство причин rsUnhandledHttpApplicationError.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Chrome Remote Desktop в режиме гостя: как настроить
Удалённый доступ

Chrome Remote Desktop в режиме гостя: как настроить

Полное руководство по Ecobee: настройки и советы
Умный дом

Полное руководство по Ecobee: настройки и советы

Word Art в Google Документах — как создать
Руководство

Word Art в Google Документах — как создать

Коллекции Microsoft Edge — руководство
браузер

Коллекции Microsoft Edge — руководство

Обход и сброс пароля на любой ОС
Безопасность

Обход и сброс пароля на любой ОС

Отключить уведомления на Apple Watch
Apple Watch

Отключить уведомления на Apple Watch