MS SQL Reporting Services برای چاپ گزارشات از طریق صفحات وب از یک کنترل ActiveX به نام ClientPrintControl استفاده میکند. هر بار که کاربری بخواهد یکی از گزارشات را از طریق صفحات وب چاپ کند این کنترل به طور خودکار به کامپیوترش بارگذاری (download) شده و به طور اتوماتیک نصب میگردد. البته برای این کار باید Admin باشد و اجازه نصب ActiveX هم در تنظیمات IE صادر شده باشد در غیر این صورت خطای Unable to load client print control مشاهده میگردد. اما اینها تنها مواردی نیستند که موجب بروز این خطا میشوند…
یکی از اوقات خیلی نادری که ممکن است این اتفاق در آن به وقوع بپیوندد وقتی است که MS SQL Reporting Services از نسخه ۲۰۰۵ به ۲۰۰۸ ارتقا داده شده ولی کنترلهای ReportViewerی که در لابلای صفحات ASPX وجود دارند همچنان از نسخه مخصوص ۲۰۰۵ استفاده میکنند. برای رفع مشکل باید تمام صفحات aspx و ascx پروژه به دنبال کد:
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
جستجو شده و شماره نسخه آن از 8.0.0.0 به 9.0.0.0 که مخصوص MS SQL Reporting Services 2008 است عوض شود. فایل web.config هم باید برای موارد مشابه بررسی شود. پس از انجام این کار برای پیشگیری از وقوع هر نوع خطای احتمالی دیگر بهتر است Microsoft Report Viewer 2008 SP1 Redistributable هم در سرور نصب شود.
بعد از انجام همه این کارها ممکن بعضی کلاینتها هنوز هم مشکل داشته باشند. برای رفع مشکل بایستی از طریق Command Prompt به شاخه C:WINDOWSDownloaded Program Files رفته، نخست انتهای فایل RSClientPrint-x86.inf مشاهده شده و از وجود تاریخ 2007 یا بالاتر در آن کسب اطمینان و سپس فایل rsclientprint.dll با کمک RegSvr32.exe در ویندوز Register گردد.
البته ممکن است این فایلها در این شاخه موجود نباشند که در این صورت باید فایل .cab آن از شاخههای نصب شده Reporting Services در ویندوز پیدا شده و پس از باز کردن زیپ آن در یکی از شاخههای هارد دیسک Register شود.
مراجع: |
http://billfellows.blogspot.com/2008/10/unable-to-load-client-print-control.html |
Microsoft Report Viewer 2008 SP1 Redistributable |