2009-05-04 45 views
10

Tôi đã sử dụng thành phần MS ReportViewer trong một trang web trong một thời gian, nhưng gần đây tôi đã nhận được lỗi hiển thị bên dưới.Lỗi trình phân tích cú pháp Microsoft ASP.NET ReportViewer

Parser Error Message: The base class includes the field 'xyz', but its type (Microsoft.Reporting.WebForms.ReportViewer) is not compatible with the type of control (Microsoft.Reporting.WebForms.ReportViewer).

<rsweb:ReportViewer ID="xyz" runat="server" Width="100%" Font-Names="Verdana" Font-Size="8pt" Height="400px" ProcessingMode="Local" ShowExportControls="false"> 

Bây giờ, tôi nhận được lỗi này trong Visual Studio cũng như trong sản xuất. Tôi đã cài đặt ReportViewer Redistributable trong sản xuất.

Tôi bằng cách nào đó có thiếu tham chiếu trong dự án của mình hay gì đó?

Trả lời

6

Tôi phát hiện ra câu trả lời: Bằng cách nào đó tham chiếu đến phiên bản 9 của Microsoft.Reporting.WebForms đã chuyển sang phiên bản 8. Điều này gây ra lỗi. Vì vậy, việc xóa tham chiếu và thêm vào phiên bản chính xác của tham chiếu dường như đã khắc phục được sự cố.

Edit:

Vâng, theo các phiên bản trước của tập tin .vbproj, đó là một tham chiếu đến 9, mặc dù trước đó màn hình tham khảo dự án bất động sản nói với tôi 8. Nói tóm lại tôi không thực sự chắc chắn những gì quản lý để có được hơi say lên, nhưng nó có vẻ là làm việc ngay bây giờ.

Nếu bất kỳ ai đã trải nghiệm điều này hoặc có một số thông tin chi tiết, vui lòng đóng góp.

+0

nhưng hãy cho tôi biết một điều về cách bạn xóa tài liệu tham khảo khỏi ứng dụng asp.net? –

0

Có cùng vấn đề. Làm sạch Windows 2008 Server cài đặt với SQL Server 2005 và SQL báo cáo. Máy chủ lưu trữ trang web. Đã cài đặt ReportViewer 2008 SP1. Tham chiếu Web.config phiên bản 9.0.0.0.

Thông báo lỗi tương tự xuất hiện: Lớp cơ sở bao gồm trường nhưng loại của nó (Microsoft.Reporting.WebForms.ReportViewer) không tương thích với loại điều khiển (Microsoft.Reporting.WebForms.ReportViewer).

Đã tìm kiếm trực tuyến và nhiều người gặp phải sự cố tương tự. Một số người đề xuất chỉnh sửa thủ công tệp dự án. Tôi đã sửa lỗi bằng cách cài đặt Phiên bản cụ thể = True (Phiên bản = 9.0.0.0) trong Solution Explorer -> [Tên dự án web] -> Tham khảo-> Microsoft.Reporting.WebForms-> Properties.

Trong một trong các môi trường, chúng tôi cũng tìm thấy tệp Microsoft.Reporting trong thư mục bin web. Và, họ đã xung đột với các dll đăng ký trong GAC. Xóa các dll đã giải quyết được vấn đề.

2

Tiếp theo cài đặt một sạch, dự án của tôi không biên dịch vì tham chiếu đến các dll bị hỏng, vì vậy tôi đã xóa nó và thêm vào nó một lần nữa, sau đó trang web nơi ReportViewer được sử dụng đã đưa ra một lỗi phân tích cú pháp:

The base class includes the field 'rprtReportsViewer', but its type (Microsoft.Reporting.WebForms.ReportViewer) is not compatible with the type of control (Microsoft.Reporting.WebForms.ReportViewer).

tôi tìm thấy một tài liệu tham khảo trên trang web với số phiên bản khác nhau để người tôi vừa nói thêm:

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

tôi đã thay đổi phiên bản 9.0.0.0, và lần này có một lỗi biên dịch khi tôi làm mới trang:

CS0433: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\8.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' 

Sau đó, tôi tìm kiếm giải pháp cho "Microsoft.ReportViewer" và tìm thấy nhiều tham chiếu hơn trong quá trình biên dịch.cấu hình:

<add assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
    <add assembly="Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
    </assemblies> 
    <buildProviders> 
    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </buildProviders> 

Tôi đã thay đổi số phiên bản ở đây quá và nó dừng lại các lỗi

2

Bạn cũng có thể cần phải Remove from \ file bin:

 Microsoft.ReportViewer.Common.dll 
    Microsoft.ReportViewer.ProcessingObjectModel.dll 
    Microsoft.ReportViewer.WebForms.dll 
    Microsoft.ReportViewer.WinForms.dll 

Tôi chỉ chuyển chúng thành một tiểu danh mục.

0

Tôi gặp sự cố này trên máy chủ Sản xuất. Tôi đã cài đặt phiên bản ReportViewer chính xác và đảm bảo tất cả các tham chiếu trong dự án đều chỉ vào đúng phiên bản. Tuy nhiên, tôi vẫn gặp lỗi.

Cuối cùng tôi đã giải quyết được sự cố bằng cách chuyển tới 'Tệp ASP.NET tạm thời' và xóa tệp cho ứng dụng của tôi. Để làm điều này, bạn cần phải dừng ứng dụng trước. Điều này sau đó giải quyết được vấn đề. Trên máy chủ DEV tôi đã không gặp phải vấn đề này bởi vì sau khi cài đặt ReportViewer tôi khởi động lại máy.

Hy vọng điều này sẽ giúp ai đó. Tôi kéo rất nhiều tóc ra trước khi tôi giải quyết 'thách thức' đặc biệt này.

0

Tham khảo -> (Microsoft.ReportViewer.WebForms), nhấp vào nút chuột phải.

Tùy chọn Chỉ định phiên bản, để nguyên là sai.

Sau đó, chỉ cần lưu và chạy lại.

2

Kiểm tra phiên bản rdlc trang của bạn như

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

tôi đi qua các lỗi tương tự. Điều gì làm việc cho tôi là xóa tham chiếu Microsoft.ReportViewer.WebForms và thêm nó một lần nữa.

Các vấn đề liên quan