2009-05-04 38 views
10

He estado utilizando un componente MS ReportViewer en un sitio web desde hace un tiempo, pero recientemente he estado recibiendo el error que se muestra a continuación.Microsoft ASP.NET ReportViewer Error del analizador

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

Ahora, me sale este error en Visual Studio, así como en la producción. Tengo ReportViewer Redistributable instalado en producción.

¿De alguna manera me falta una referencia en mi proyecto, o algo así?

Respuesta

6

Descubrí la respuesta: de alguna manera, la referencia a la versión 9 de Microsoft.Reporting.WebForms se cambió a la versión 8. Esto provocó el error. Por lo tanto, eliminar la referencia y agregar la versión correcta de la referencia parece haber solucionado el problema.

Editar:

Bueno, de acuerdo a la versión anterior del archivo .vbproj, era una referencia a 9, a pesar de que el proyecto hace referencia a propiedades de pantalla me dijo 8. En resumen No estoy realmente seguro de lo se las arreglaron para arruinarlo, pero parece estar funcionando ahora.

Si alguien ha experimentado esto o tiene alguna idea, por favor contribuya.

+0

pero dime una cosa, ¿cómo borraste las referencias de una aplicación asp.net? –

0

Tiene el mismo problema. Limpie la instalación de Windows 2008 Server con SQL Server 2005 y SQL Reporting. El servidor aloja el sitio. ReportViewer 2008 SP1 instalado. Web.config hace referencia a la versión 9.0.0.0.

Aparece el mismo mensaje de error: La clase base incluye el campo pero su tipo (Microsoft.Reporting.WebForms.ReportViewer) no es compatible con el tipo de control (Microsoft.Reporting.WebForms.ReportViewer).

Se busca en línea y muchas personas experimentan el mismo problema. Algunas personas sugieren editar manualmente el archivo del proyecto. Logré solucionarlo configurando la Versión específica = Verdadero (Versión = 9.0.0.0) en el Explorador de soluciones -> [Nombre del proyecto web] -> Referencias-> Microsoft.Reporting.WebForms-> Propiedades.

En uno de los entornos también encontramos Microsoft.Reporting dlls en la carpeta web bin. Y, estaban en conflicto con los dlls registrados en el GAC. La eliminación de los DLL resolvió el problema.

2

Después de una instalación limpia, mi proyecto no compila porque la referencia a la DLL se rompió, por lo que se suprime y se añade de nuevo, a continuación, la página web en la que se utiliza el ReportViewer dio un error del analizador:

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

he encontrado una referencia en la página web con el número de versión diferente a la que yo acababa de añadir:

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

cambié a la versión 9.0.0.0, y esta vez tiene un error de compilación cuando refrescado el página:

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' 

Luego busqué la solución para "Microsoft.ReportViewer" y encontré más referencias en la compilación.config:

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

he cambiado los números de versión aquí también y se detuvo a los errores

2

También puede ser necesario quitar de \ archivos bin:

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

acabo de ellos se movió en una sub directorio.

0

Tuve este problema en un servidor de producción. Instalé la versión correcta de ReportViewer y me aseguré de que todas las referencias en el proyecto apuntaran a la versión correcta. Sin embargo, todavía recibía errores.

Eventualmente resolví el problema yendo a 'Archivos temporales ASP.NET' y borrando los archivos para mi aplicación. Para hacer esto, primero debes detener la aplicación. Esto luego resolvió el problema. En los servidores DEV no había encontrado este problema porque después de instalar ReportViewer reinicié la máquina.

Espero que esto ayude a alguien. Saqué muchos cabellos antes de resolver este "desafío" en particular.

0

Referencias -> (Microsoft.ReportViewer.WebForms), haga clic con el botón derecho del mouse.

La opción Especificar versión, lo deja como falso.

Después de eso, solo guarde y vuelva a ejecutar.

2

Compruebe la página de la versión rdlc como

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

me encontré con el mismo error. Lo que funcionó para mí fue eliminar la referencia Microsoft.ReportViewer.WebForms y agregarla de nuevo.

Cuestiones relacionadas