Visual Basic.NET - Cómo puedo crear un reporte en un servicio WCF?

   
Vista:

Cómo puedo crear un reporte en un servicio WCF?

Publicado por pepx (1 intervención) el 12/11/2013 20:09:10
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

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

1
2
3
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>
</startup>
ó
1
2
3
<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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder