Que tal compañeros, acabo de actualizar Evolution a la versión 1.19.1.2 pero al momento de generar reportes me lanza los siguientes mensajes:

alt text

alt text

alt text

asked 23 Oct '19, 09:00

Josue%20Mancilla's gravatar image

Josue Mancilla
(suspended)
accept rate: 42%

Esos son reportes de Crystal?

(23 Oct '19, 09:14) MiguelBustamante MiguelBustamante's gravatar image

Es correcto, son reportes de Crystal Reports

(23 Oct '19, 09:17) Josue Mancilla Josue%20Mancilla's gravatar image

Finalmente se encontró la solución del problema.

Al momento de instalar, cuando se creó la Tarea de Windows para que ejecuta el componente CrystalReportAPI, se programó para ejecutarse cuando el servidor arranca, utilizando un usuario de dominio proporcionado por el cliente, tal y como dice la recomendación del procedimiento de instalación.

Sin embargo, el usuario configurado nunca había iniciado sesión en el servidor donde se ejecutan los compponentes; de esa cuenta no se ha creado completamente el folder c:\User\<usuario_de_dominio>, y por lo tanto no existe la ruta de los archivos temporales para ese usuario, que usualmente es c:\Users\<usuario_de_dominio>\AppData\Local\Temp.

Esto desencadena que el reporte que recibe el API (archivo RPT en formato de un arreglo de bytes), se guardara en un folder al cual no tiene acceso al Runtime de Crystal, generando la situación de que nunca terminaba de generarlo (error de timeout del lado del website).

El error claramente está en el Runtime de Crystal que no previene esta situación, ya que debió mostrar un mensaje de error; pero dado que es un producto descontinuado, en el siguiente Hotfix se tomarán medidas en el código fuente de Evolution para que no se utilice esta ruta, sino una a la cual tiene acceso dicho Runtime.

La solución temporal que se puede aplicar es: ejecutar la tarea de Windows utilizando un usuario local (que si halla iniciado sesión al menos una vez en el servidor de instalación) en lugar del usuario de dominio. No se recomienda usar SYSTEM, ya que probablemente daría el mismo error y además podría tener riesgos de seguridad.

link
This answer is marked "community wiki".

answered 11 Nov '19, 12:06

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

Son 3 errores diferentes:

This operation is not supported for a relative URI. (esta operacion no se admite en un uri relativo)

Se canceló una tarea

The server principal "EvoDbUser" is not able to access the database "EvoConfig" under the current security context

En cuanto al 3ero probablemente sea la conexion del RPT o el SP ya que hace referencia a EvoConfig (el generador de Crystal no hace referencias a bases de datos por si mismo)

En cuanto a los otros dos sería mejor que proporciones el log del generador de Crystal para tener una mejor idea qué cosas no se han configurado correctamente

link

answered 23 Oct '19, 09:55

sbarahona's gravatar image

sbarahona ♦♦
(suspended)
accept rate: 32%

Para el primer error ya te aseguraste que el valor del parámetro en AppSettings.config del website que indica la URL del CrystalApi está bien especificada.

(23 Oct '19, 14:47) Fernando Paz ♦♦ Fernando%20Paz's gravatar image

De acuerdo al log que pusiste el error 'Se cancelo una tarea' está del lado del website, porque no buscan el trace en ELMAH, quizá allí les de más información.

(23 Oct '19, 15:04) Fernando Paz ♦♦ Fernando%20Paz's gravatar image

Esto es lo que muestra el log

El log esto es lo que muestra:

2019-10-23 09:31:43,914 [1] INFO  CrystalReportsAPI.Startup - Crystal Reports Service API Starting ...
2019-10-23 09:31:44,351 [1] INFO  CrystalReportsAPI.Startup - Adding Services ...
2019-10-23 09:31:51,492 [1] INFO  CrystalReportsAPI.Startup - Configure HTTP request pipeline ...
2019-10-23 09:32:20,148 [1] INFO  CrystalReportsAPI.Startup - Crystal Reports Service API Starting ...
2019-10-23 09:32:20,461 [1] INFO  CrystalReportsAPI.Startup - Adding Services ...
2019-10-23 09:32:21,930 [1] INFO  CrystalReportsAPI.Startup - Configure HTTP request pipeline ...
2019-10-23 09:32:23,978 [9] FATAL Microsoft.AspNetCore.Server.Kestrel - Unable to start Kestrel.
System.IO.IOException: Failed to bind to address http://[::]:8003: address already in use. ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.AddressInUseException: Error -4091 EADDRINUSE address already in use ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error -4091 EADDRINUSE address already in use
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.ThrowError(Int32 statusCode)
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.tcp_getsockname(UvTcpHandle handle, SockAddr& addr, Int32& namelen)
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvTcpHandle.GetSockIPEndPoint()
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.ListenTcp(Boolean useFileHandle)
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.<>c.<StartAsync>b__8_0(Listener listener)
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.DoPostWork()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.ListenerPrimary.<StartAsync>d__15.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransport.<BindAsync>d__20.MoveNext()
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransport.<BindAsync>d__20.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<>c__DisplayClass23_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.<BindEndpointAsync>d__5.MoveNext()
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.<BindEndpointAsync>d__5.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.<BindAddressAsync>d__7.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.<BindAsync>d__2.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.<BindAsync>d__0.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<StartAsync>d__23`1.MoveNext()
2019-10-23 09:55:53,892 [11] INFO  CrystalReportsAPI.Controllers.GenerateController - api/generate
2019-10-23 09:55:53,955 [11] INFO  CrystalReportsAPI.Controllers.GenerateController - Inicio generación reporte 'FiniquitoLaboral' solicitado desde [/] por $admin a las 23/10/2019 09:55
2019-10-23 09:55:54,002 [11] INFO  CrystalReportsAPI.Services.DataAccessService - Prepara los parametros y reemplaza las variables de entorno donde se usan
2019-10-23 09:55:54,174 [11] INFO  CrystalReportsAPI.Services.DataAccessService - Obteniendo datos del origen [FiniquitoLaboral] de tipo [StoredProcedure]
2019-10-23 09:55:55,392 [11] INFO  CrystalReportsAPI.Services.DataAccessService - Se va a crear un archivo temporal para guardar los bytes en: C:\Users\ehflores\AppData\Local\Temp\tmpCF7A.tmp
2019-10-23 09:56:00,861 [11] INFO  CrystalReportsAPI.Services.DataAccessService - Cargando el reporte al engine de Crystal Reports
2019-10-23 10:03:09,172 [7] INFO  CrystalReportsAPI.Controllers.GenerateController - api/generate
2019-10-23 10:03:09,188 [7] INFO  CrystalReportsAPI.Controllers.GenerateController - Inicio generación reporte 'FiniquitoLaboral' solicitado desde [/] por $admin a las 23/10/2019 10:03
2019-10-23 10:03:09,203 [7] INFO  CrystalReportsAPI.Services.DataAccessService - Prepara los parametros y reemplaza las variables de entorno donde se usan
2019-10-23 10:03:09,219 [7] INFO  CrystalReportsAPI.Services.DataAccessService - Obteniendo datos del origen [FiniquitoLaboral] de tipo [StoredProcedure]
2019-10-23 10:03:09,282 [7] INFO  CrystalReportsAPI.Services.DataAccessService - Se va a crear un archivo temporal para guardar los bytes en: C:\Users\ehflores\AppData\Local\Temp\tmp6E5E.tmp
2019-10-23 10:03:10,391 [7] INFO  CrystalReportsAPI.Services.DataAccessService - Cargando el reporte al engine de Crystal Reports
2019-10-23 11:42:20,995 [20] INFO  CrystalReportsAPI.Controllers.GenerateController - api/generate
2019-10-23 11:42:21,058 [20] INFO  CrystalReportsAPI.Controllers.GenerateController - Inicio generación reporte 'GTPlanillaCheques' solicitado desde [/] por $admin a las 23/10/2019 11:42
2019-10-23 11:42:21,261 [20] INFO  CrystalReportsAPI.Services.DataAccessService - Prepara los parametros y reemplaza las variables de entorno donde se usan
2019-10-23 11:42:21,370 [20] INFO  CrystalReportsAPI.Services.DataAccessService - Obteniendo datos del origen [rep_cheques_planilla] de tipo [StoredProcedure]
2019-10-23 11:42:21,855 [20] INFO  CrystalReportsAPI.Services.DataAccessService - Se va a crear un archivo temporal para guardar los bytes en: C:\Users\ehflores\AppData\Local\Temp\tmp42A1.tmp
2019-10-23 11:42:22,855 [20] INFO  CrystalReportsAPI.Services.DataAccessService - Cargando el reporte al engine de Crystal Reports
2019-10-23 13:00:49,967 [36] INFO  CrystalReportsAPI.Controllers.GenerateController - api/generate
2019-10-23 13:00:50,061 [36] INFO  CrystalReportsAPI.Controllers.GenerateController - Inicio generación reporte 'GTPlanillaCheques' solicitado desde [/] por $admin a las 23/10/2019 13:00
2019-10-23 13:00:50,248 [36] INFO  CrystalReportsAPI.Services.DataAccessService - Prepara los parametros y reemplaza las variables de entorno donde se usan
2019-10-23 13:00:50,264 [36] INFO  CrystalReportsAPI.Services.DataAccessService - Obteniendo datos del origen [rep_cheques_planilla] de tipo [StoredProcedure]
2019-10-23 13:00:52,264 [36] INFO  CrystalReportsAPI.Services.DataAccessService - Se va a crear un archivo temporal para guardar los bytes en: C:\Users\ehflores\AppData\Local\Temp\tmp22B8.tmp
2019-10-23 13:00:54,451 [36] INFO  CrystalReportsAPI.Services.DataAccessService - Cargando el reporte al engine de Crystal Reports
link

answered 23 Oct '19, 13:44

Josue%20Mancilla's gravatar image

Josue Mancilla
(suspended)
accept rate: 42%

Pareciera que ya tienes el puerto en Uso.

(23 Oct '19, 13:49) MiguelBustamante MiguelBustamante's gravatar image

Sobre el segundo error "A task was cancelled" la causa más común es un error de Timeout. Y como el API no reporta ningún error, eso indica que desde el punto de vista del API, el reporte se generó correctamente; sin embargo, el website no espero todo lo que tarda el proceso completo y dió por cancelada la tarea.

Habría que evaluar las siguientes preguntas:

  • ¿Cuánto tiempo tarda el SP que genera los datos?
  • ¿Cuánto tiempo tarda el renderizado del reporte una vez se tienen los datos?
  • ¿Qué tamaño en bytes tiene el PDF generado?
  • ¿Cuánto tiempo tarda la descarga del PDF desde el API al website de Evolution?
link

answered 23 Oct '19, 17:49

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×44
×4

Asked: 23 Oct '19, 09:00

Seen: 568 times

Last updated: 11 Nov '19, 12:06

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática