2012-08-30 73 views
7

Tôi đang sử dụng Visual Studio 2010 và tôi đã cài đặt "Microsoft Report Viewer 2012 Runtime" với hy vọng sẽ kiểm tra hệ thống báo cáo mới trong SQL 2012. Sau đó tôi đã xóa để "Microsoft.ReportViewer". WebForms "từ Web.config của tôi và xóa điều khiển ReportViewer khỏi hộp công cụ của tôi và thêm phiên bản mới 11 ReportViewer.ReportViewer 11 (2012) Visual Studio 2010

tôi đã thêm các điều khiển mới đến một trang thử nghiệm và cho một nó cho biết thêm đăng ký này để trang kiểm tra:

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

và nó thêm các entry vào Web.config:

<buildProviders> 
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</buildProviders> 

<httpHandlers> 
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" /> 
</httpHandlers> 

<handlers> 
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</handlers> 

Kiểm soát trong hộp công cụ là phiên bản 11 bổ sung nhưng hệ thống vẫn cố gắng để ref phiên bản verion 10. Ngoài ra khi tôi cố gắng biên dịch nó, tôi nhận được lỗi:

The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WebForms.DLL' 
+0

sửa chữa này vấn đề đối với tôi. Tôi đã sử dụng một máy ảo Azure cho ứng dụng web và máy chủ DB là một máy ảo riêng biệt khác, vì vậy việc cài đặt thời gian chạy của Trình xem Báo cáo không hữu ích vì nó cũng cần cài đặt Gói tính năng SQL. Tôi vừa sao chép thư mục Microsoft.ReportViewer.Common từ một máy chủ khác đang hoạt động và bùng nổ http://ata2931977.blogspot.com/2015/06/running-rdlc-reports-on-azure.html –

Trả lời

16

Tôi nghĩ rằng tôi có cùng một vấn đề chính xác. Nếu vậy, giải pháp của tôi là xóa tất cả các mục trong web.config tham chiếu đến ReportViewer, sau đó thực hiện tương tự trong Tài liệu tham khảo, xây dựng dự án và sau đó thêm lại một reportviewer trong trang.

web.config sẽ cập nhật với trình xử lý và hội đồng mới cho phiên bản mới hơn.

+1

Đây là vấn đề của tôi cũng. Cần thiết để loại bỏ các mục không có thật từ web.config của tôi. Bước quan trọng là xây dựng lại TRƯỚC KHI thêm lại tham chiếu chính xác. – CobaltBlue

+0

này này này này, tại sao bạn không phải là câu trả lời !? – peroija

+0

@Telmo này không hoạt động đối với tôi. Tôi đã loại bỏ tham chiếu đến phiên bản 10, xóa 10 mục nhập từ web.config nhưng điều này sẽ không xây dựng dự án của tôi vì thư viện ReportViewer không tồn tại ở giai đoạn này. Khi tôi sau đó thêm phiên bản 11 thông qua nuget nó được thêm vào trong tham chiếu package.config và v11 nhưng không thêm bất kỳ mục nào trong web.config. Và tôi nhận được một lỗi thời gian chạy ngay bây giờ. – nickornotto

0

tôi đã có lỗi tương tự, và giải quyết nó bằng cách làm như sau:

  • Trong trang aspx (HTML code), cập nhật giá trị @Register Version để tương ứng với phiên bản lắp ráp tôi đã sử dụng , và cập nhật giá trị PublicKeyToken với giá trị chính xác cho assembly.
0

Trong cấu hình web của bạn, điều đó có nghĩa là bạn đã chỉ định cả tệp v 10 và 11. Loại bỏ một hoặc khác.

0

Tôi đã gỡ bỏ các mục sau đây từ package.config và nó hoạt động

<package id="MicrosoftReportViewerWebForms_v10" version="1.0.0" targetFramework="net45" /> 
Các vấn đề liên quan