Buenas Tardes señores... Despues de Tantos años de Ausencia por fin el Encontrador de errores Regresa con un nuevo y complicado error, supongo que solo a los mas locos les pasa esto... pero bueno.. aquí esta la historia.
Estaba , Felizmente programando en una dll que generaba un XML y un PDF, y usaba como base el Crystal Report, el Viejo y confiable Cristal Report de SAP para Visual Studio 2013, para estoy tengo en esta maquina windows 10.
Cuando Ejecute la aplicación en mi entorno, Corrió sin ningún problema (Como suele suceder en la mayoría de casos), pero cuando ejecute en un servidor, en el archivo de log que creee me salio el siguiente error:
The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception
Pues como siempre acudi al Viejo google Chrome y pues como no es tan comun, solo habia pocas respuestas.
Las repuestas de google , (La mayoria en Ingles eran), en resumen:
-Que era culpa de la mala instalacion, por que a los que les salio ese error la mayoria tenia aplicaciones de ASP.NET.
-Que le Faltaba el CR_Runtime (El de 32 y 64 bits).
Y asi la mayoria, me decian lo mismo, hasta que un amigo del Blog de Windows el de MSDN, puso la joya del inicio de la busqueda de ese odioso error.
Que para reparar tenia que Ir al IIS an>Grupos de Aplicaciones > Establecer Valores Predeterminados de Grupos de aplicaciones...> y en la primera Opcion donde dice "Habilitar Aplicaciones de 32 bits", debe esta en "true"
Y como por arte de magia funciono....pense que era el problema era ese, ya que el crystal Report se ejecutaba en verison de 64 bits.
Pero O sorpresa, resulta que cuando migre este mis dll y el mismo Crystal Report , Volvio a dar ese error , a Pesar de haber Configurado el IIS.
Y entonces que paso? Despues de Horas buscando otras vez y viendo las mismas repuestas, entre todas las iguales un Tipo en stackoverflow, comento que debiamos tener una Actualización para poder ejecutar todos los DLL de Crystal en la Version 13.0.21 las cuales no venian en ese servidor.
Asi que Lo puse y funciono...
Lo primero fue que la aplicacion de escritorio, estaba en un entorno de red , asi que era como si lo hiciera desde fuera, por eso funciono la configuracion de IIS
Asi que en resumen lo que deben hacer Cuando instalen Crystal Report y Tengan ese Error, lo que hay que hacer para configurar un equipo es lo siguiente:
1.- Ver los Visual Studio Redistribuibles Instalados en el Equipo, para usar la Version de 64 bits de Cristal Report Version 13.0.21 en adelante, deben tener
Visual C++ Redistributable para Visual Studio 2015
https://www.microsoft.com/es-mx/download/details.aspx?id=48145
2..-Despues de verificar el Crystal Report , y que se instale correctamente instalar los CRRuntime_32bit y 64bits, esos los encuentras en la pagiina de SAP.
3.-Verifica que la Configuracion del IIS, se puedan ejecutar Aplicaciones de 32 bits.(A pesar de que Crystal Report sea de 64 bits) como se muestra:
IIS >Grupos de Aplicaciones > Establecer Valores Predeterminados de Grupos de aplicaciones...> y en la primera Opcion donde dice "Habilitar Aplicaciones de 32 bits", debe esta en "true"
y Con eso podran Solucionar ese fastidioso error que me tarde una semana en encontralo.. pero espero , como siempre, que les pueda servir.
Estaba , Felizmente programando en una dll que generaba un XML y un PDF, y usaba como base el Crystal Report, el Viejo y confiable Cristal Report de SAP para Visual Studio 2013, para estoy tengo en esta maquina windows 10.
Cuando Ejecute la aplicación en mi entorno, Corrió sin ningún problema (Como suele suceder en la mayoría de casos), pero cuando ejecute en un servidor, en el archivo de log que creee me salio el siguiente error:
The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception
Pues como siempre acudi al Viejo google Chrome y pues como no es tan comun, solo habia pocas respuestas.
Las repuestas de google , (La mayoria en Ingles eran), en resumen:
-Que era culpa de la mala instalacion, por que a los que les salio ese error la mayoria tenia aplicaciones de ASP.NET.
-Que le Faltaba el CR_Runtime (El de 32 y 64 bits).
Y asi la mayoria, me decian lo mismo, hasta que un amigo del Blog de Windows el de MSDN, puso la joya del inicio de la busqueda de ese odioso error.
Que para reparar tenia que Ir al IIS an>Grupos de Aplicaciones > Establecer Valores Predeterminados de Grupos de aplicaciones...> y en la primera Opcion donde dice "Habilitar Aplicaciones de 32 bits", debe esta en "true"
Y como por arte de magia funciono....pense que era el problema era ese, ya que el crystal Report se ejecutaba en verison de 64 bits.
Pero O sorpresa, resulta que cuando migre este mis dll y el mismo Crystal Report , Volvio a dar ese error , a Pesar de haber Configurado el IIS.
Y entonces que paso? Despues de Horas buscando otras vez y viendo las mismas repuestas, entre todas las iguales un Tipo en stackoverflow, comento que debiamos tener una Actualización para poder ejecutar todos los DLL de Crystal en la Version 13.0.21 las cuales no venian en ese servidor.
Asi que Lo puse y funciono...
Lo primero fue que la aplicacion de escritorio, estaba en un entorno de red , asi que era como si lo hiciera desde fuera, por eso funciono la configuracion de IIS
Asi que en resumen lo que deben hacer Cuando instalen Crystal Report y Tengan ese Error, lo que hay que hacer para configurar un equipo es lo siguiente:
1.- Ver los Visual Studio Redistribuibles Instalados en el Equipo, para usar la Version de 64 bits de Cristal Report Version 13.0.21 en adelante, deben tener
Visual C++ Redistributable para Visual Studio 2015
https://www.microsoft.com/es-mx/download/details.aspx?id=48145
2..-Despues de verificar el Crystal Report , y que se instale correctamente instalar los CRRuntime_32bit y 64bits, esos los encuentras en la pagiina de SAP.
3.-Verifica que la Configuracion del IIS, se puedan ejecutar Aplicaciones de 32 bits.(A pesar de que Crystal Report sea de 64 bits) como se muestra:
IIS >Grupos de Aplicaciones > Establecer Valores Predeterminados de Grupos de aplicaciones...> y en la primera Opcion donde dice "Habilitar Aplicaciones de 32 bits", debe esta en "true"
y Con eso podran Solucionar ese fastidioso error que me tarde una semana en encontralo.. pero espero , como siempre, que les pueda servir.