Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2013, 10:40
pepx
 
Fecha de Ingreso: julio-2013
Mensajes: 3
Antigüedad: 11 años, 8 meses
Puntos: 0
Exclamación Cómo puedo crear un reporte en un servicio WCF?

Hola gente,

Tengo un particular problema usando Crystal Reports en un proyecto de servicio WCF. (Uso Visual Studio 2010 SP1, CrystalReports 13 for VS y Framework .NET 4)

Sobre un objeto (rpt) de tipo ReportClass, al usar el metodo SetDataSource
Código:
rpt.SetDataSource(dt)
me tira el siguiente error en tiempo de ejecución:

Información adicional: No se puede cargar el archivo o ensamblado 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Googlié el mensaje de error y todos dan una única solución, agregar en el archivo de configuración (app.config/web.config) las siguientes líneas:
Código:
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>
</startup>
ó
Código:
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
Pero sigue dando el mismo error. Así que creé la carpeta dotnet1 en la ubicación mencionada a ver que pasa y arroja el siguiente error:
Información adicional: El ensamblado de modo mixto se ha compilado con la versión 'v2.0.50727' del runtime y no se puede cargar en el runtime 4.0 sin información de configuración adicional.

Por lo visto el Crystal Reports 13 funciona con el Framework .NET 2 y necesita la configuración adicional useLegacyV2RuntimeActivationPolicy en "true" para poder andar. Pero el servicio de alguna manera no toma ésa configuración, la omite o no la lee.
Si yo intento crear los reportes con LA MISMA LÓGICA (incluyendo useLegacyV2RuntimeActivationPolicy="true") pero en una aplicación de consola, windows form o web form funciona perfectamente. El conflicto lo tiene con los servicios WCF.

Alguna idea de como solucionar este problema?

Saludos