2009-05-04 2 views
10

Я уже некоторое время использую компонент MS ReportViewer на веб-сайте, но в последнее время я получаю ошибку, показанную ниже.Ошибка анализатора 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"> 

Теперь, я получаю эту ошибку в Visual Studio, а также в производстве. У меня есть ReportViewer Redistributable, установленный в производстве.

Я как-то пропустил ссылку в своем проекте или что-то еще?

ответ

6

Я обнаружил ответ: Как-то ссылка на версию 9 Microsoft.Reporting.WebForms была переключена на версию 8. Это вызвало ошибку. Поэтому удаление ссылки и добавление в правильную версию ссылки, похоже, устранили проблему.

Edit:

Ну, в соответствии с предыдущей версией файла .vbproj, это был намек на 9, несмотря на то, что экран ссылки проекта свойства сказал мне 8. Короче говоря, я не совсем уверен, что удалось получить прикручен, но, похоже, сейчас работает.

Если кто-то испытал это или имеет некоторое представление, внесите свой вклад.

+0

но скажите мне, как вы удалили ссылки из приложения asp.net? –

0

Имея ту же проблему. Очистка Windows 2008 Server с помощью SQL Server 2005 и SQL Reporting. На сервере размещен сайт. Установленный ReportViewer 2008 SP1. Ссылки Web.config версии 9.0.0.0.

Такое же сообщение об ошибке появляется: базовый класс включает это поле, но его тип (Microsoft.Reporting.WebForms.ReportViewer) несовместим с типом элемента управления (Microsoft.Reporting.WebForms.ReportViewer).

Поиск в Интернете и много людей испытывают ту же проблему. Некоторые люди предлагают вручную редактировать файл проекта. Мне удалось исправить это, установив в Обозревателе решений -> [Название веб-проекта] -> Референции-> Microsoft.Reporting.WebForms-> Свойства в специальной версии = True (Version = 9.0.0.0).

В одной из сред мы также обнаружили файлы Microsoft.Reporting dll в папке веб-буфера. И они конфликтуют с DLL, зарегистрированными в GAC. Удаление DLL решило проблему.

2

После чистой установки, мой проект не компилируется, поскольку ссылка на DLL была сломана, так что я удалил его и снова добавил он, то веб-страницу, где ReportViewer используется дал синтаксической ошибке:

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).

Я нашел ссылку на веб-страницу с номером версии, отличной от той, которую я только что добавил:

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

Я изменил версию 9.0.0.0, и на этот раз получил ошибку компиляции, когда я обновил страница:

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' 

Затем я искал решение для «Microsoft.ReportViewer» и нашел больше ссылок в компиляции.конфиг:

<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> 

я тоже изменил номера версий здесь и остановили ошибки

2

Вам также может понадобиться удалить из \ BIN файлов:

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

Я просто переместил их в суб каталог.

0

У меня была эта проблема на производственном сервере. Я установил правильную версию ReportViewer и убедился, что все ссылки в проекте указывали на правильную версию. Тем не менее, я все еще получал ошибки.

В конце концов я решил проблему, перейдя в «Временные файлы ASP.NET» и удалив файлы для своего приложения. Для этого сначала нужно остановить приложение. Тогда это решило проблему. На серверах DEV я не сталкивался с этой проблемой, потому что после установки ReportViewer я перезапустил машину.

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

0

Ссылки -> (Microsoft.ReportViewer.WebForms), щелкните правой кнопкой мыши.

Параметр «Укажите версию» оставьте его как false.

После этого просто сохраните и запустите снова.

2

Проверьте страницу RDLC версию как

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

я наткнулся на ту же ошибку. Что для меня работало, так это удалить ссылку Microsoft.ReportViewer.WebForms и добавить ее снова.

Смежные вопросы