Электронные письма подписки на отчеты SSRS 2008, случайно получающие ошибки расширения доставки - PullRequest
3 голосов
/ 23 августа 2011

Я создал 3 отчета и настроил для них ежедневные подписки, чтобы каждый из них отправлялся по электронной почте списку получателей.

Когда я просматриваю Мои подписки, я вижу сообщение «Не удалось загрузить расширение доставки для этой подписки», а иногда даже говорится, что оно было успешно отправлено получателям по электронной почте.

Некоторые отчеты отправляются, но случайно, какие я получаю.

Это не SSRS2008R2, это SSRS2008

Я убедился, что все адреса электронной почты не являются псевдонимами Я убедился, что SMTP-сервер разрешает реле с сервера отчетов Я убедился, что все адреса электронной почты все еще активны Я не вижу ошибок в логах.

Есть идеи?

Спасибо

Ответы [ 2 ]

4 голосов
/ 07 июня 2015

Вопрос довольно старый, но сообщение об ошибке все еще может появиться сегодня в SQL Server 2014, и во время написания результатов поиска с наивысшим рейтингом для сообщения об ошибке не особенно полезно, и при этом они не содержат никакого объясненияпочему ошибка возникает непоследовательно.

Вот шаги, которые я бы следовал, чтобы устранить эту проблему:

1) Убедитесь, что доставка электронной почты включена для экземпляра SSRS (т. е. посмотрите «Настройки электронной почты»раздел диспетчера конфигурации служб Reporting Services.

Обратите внимание, что при наличии конфигурации с горизонтальным масштабированием доставку электронной почты необходимо включить для каждого экземпляра , присоединенного к конфигурации с горизонтальным масштабированием, даже есликлиенты не получают доступ к экземплярам. Задачи для событий подписки будут сбалансированы между экземплярами в конфигурации горизонтального масштабирования, даже если у вас нет какого-либо типа балансировки нагрузки на уровне сети. Я не уверен вточные детали того, как работает балансировка, но этот постn blogs.msdn.com предоставляет некоторые подробности о том, как обрабатываются события в SSRS:

Когда выполняется подписка, происходит следующее:

  • Задание агента SQL Server запускается и помещает строку в таблицу событий в каталоге RS с настройками, необходимыми для обработки подписки

  • Служба сервера RS имеет ограниченное количество потоков(По 2 на процессор), которые каждые несколько секунд опрашивают таблицу событий в поисках подписок для обработки

  • Когда он находит событие, он помещает строку в таблицу уведомлений и начинает обрабатывать подписку,который включает в себя выполнение запроса подписки на основе данных (если имеется), обработку отчета, его рендеринг в указанном формате (HTML, PDF, Excel и т. д.) и доставку окончательного результата либо на адрес электронной почты, либо на общий файловый ресурс.Обратите внимание, что в таблице ExecutionLog также будет строка для выполнения отчета.

2) Просмотрите журналы ошибок SSRS (обычно в C:\Program Files\Microsoft SQL Server\MSRS??.<instance name>\Reporting Services\LogFiles).Если вы используете конфигурацию с горизонтальным масштабированием, вы должны будете делать это для каждого экземпляра в конфигурации с горизонтальным масштабированием;ошибка регистрируется только экземпляром, который не может обработать событие подписки.

Кстати, если вы запустили сеанс трассировки или расширенных событий SQL Server для базы данных SSRS во время срабатывания подписки, вы сможете увидеть, какой экземпляр SSRS обрабатывает событие подписки и дает сбой.

3) Если вы все еще застряли после шагов 1 и 2, возможно, стоит использовать Process Explorer из Sysinternals для мониторинга файловой системы и доступа к сети во время выполнения подписки.DLL расширения доставки электронной почты выглядит как C:\Program Files\Microsoft SQL Server\MSRS??.<instance name>\Reporting Services\ReportManager\Bin\ReportingServicesEmailDeliveryProvider.dll, и сообщение об ошибке может означать, что этот файл не может быть загружен.Я полагаю, что этот файл будет скопирован в каталог RSTempFiles при загрузке.

Если вы используете антивирусное программное обеспечение, вы, вероятно, захотите следовать рекомендациям Microsoft здесь для SSRS.для конкретных исключений:

Исключения файлов и каталогов

  • Каталог, содержащий временные файлы и журналы служб Reporting Services (RSTempFiles и LogFiles)

Исключения процессов

  • % ProgramFiles% \ Microsoft SQL Server \ MSRS ??. \ Службы отчетов \ ReportServer \ Bin \ ReportingServicesService.exe

В случае, когда я изучал эту проблему, она была вызвана сервером DR в конфигурации горизонтального масштабирования, не настроенной для доставки электронной почты.Сервер DR обрабатывал событие подписки примерно 1/3 времени, поэтому ошибка возникала периодически.Изначально мне не приходило в голову смотреть на сервер DR, так как к нему не обращались клиенты.

1 голос
/ 23 августа 2011

Найдите файл rsreportserver.config (файл в вашей установке сервера отчетов), закомментируйте строку:

> <Extension Name="Report Server DocumentLibrary"
> Type="Microsoft.ReportingServices.SharePoint.SharePointDeliveryExtension.DocumentLibraryProvider,ReportingServicesSharePointDeliveryExtension">
>     <MaxRetries>3</MaxRetries>
>     <SecondsBeforeRetry>900</SecondsBeforeRetry>
>     <Configuration>
>      <DocumentLibraryConfiguration>
>       <ExcludedRenderFormats>
>        <RenderingExtension>HTMLOWC</RenderingExtension>
>        <RenderingExtension>NULL</RenderingExtension>
>        <RenderingExtension>RGDI</RenderingExtension>
>       </ExcludedRenderFormats>
>      </DocumentLibraryConfiguration>
>     </Configuration>    </Extension>

Заворачивая его в <!-- -->. Перезапустите / перезагрузите службы сервера отчетов. Эта ошибка должна исчезнуть и сообщить о любых конкретных ошибках подписки, если они есть.

Удачи.

...