Unable to load client print control

Думал уже не столкнусь с таким, ан нет. Понадобилось развернуть приложение (ASP.NET с отображением отчётов SQL Server Reporting Services 2008) на новом сервере, и опять получил "Unable to load client print control" при печати отчёта.

А всё дело в том, что в ранних версиях клиентского ActiveX-компонента для печати отчёта (RSClientPrint из состава SSRS) была обнаружена уязвимость. Для принудительного отключения таких компонентов Microsoft периодически выпускает обновления безопасности, включающие в себя так называемые kill bits - идентификаторы (CLSID) COM/ActiveX-компонентов, запуск которых запрещён в Windows.

В своё время уязвимости были найдены как для 2005, так и 2008 версии SQL Server Reporting Services. Понятно, что если одна версия компонента запрещена к выполнению по CLSID, должна быть обновлённая версия:

Но и тут есть несколько важных моментов. Обновлять необходимо не только сам компонент Report Viewer на сервере (это обновление включает файлы Microsoft.ReportViewer.WinForms.dll, Microsoft.ReportViewer.WebForms.dll, Microsoft.ReportViewer.Common.dll, Microsoft.ReportViewer.ProcessingObjectModel.dll), но и клиентский ActiveX RSClientPrint.

Если привилегии пользователя не позволяют автоматически установить RSClientPrint из Internet Explorer (что обычно происходит при вызове диалогового окна "Печать" из отчёта), то это можно сделать вручную. Развернув обновлённые файлы на клиентских машинах.

Подробное описание данной проблемы можно найти в статье Client Print Fails to Load After Microsoft Update 956391

Кстати, рекомендуется обновить файлы Report Viewer и на станциях разработчиков. Также, помню, что в одном случае мне потребовалось сделать перезагрузку сервера IIS (iisreset) и почистить временные файлы ASP.NET.

Русский

Метки:

field_vote: 
4.92857
Average: 4.9 (28 votes)

Добавить комментарий