¿Qué es el tiempo de espera en el Arranque?

Tiempo de espera de la tubería de servicio

¿Alguien sabe cómo ampliar el tiempo de espera de Windows para que se inicie un servicio?    Parece que uno de mis servicios tarda mucho en iniciarse y a veces Windows cree que está en marcha pero en realidad no se ha iniciado.    No hay nada malo con el servicio, ya que normalmente se inicia sin problemas.    Pero a veces, si intentas iniciarlo desde el panel de control de servicios, se ejecuta durante un minuto (¿tal vez dos?) y vuelve diciendo que se ha iniciado correctamente, pero el proceso real no se está ejecutando.    Si ejecutas el inicio manualmente desde una línea de comandos y esperas lo suficiente, se iniciará correctamente.    Esto sólo ocurre de vez en cuando, pero impide que los usuarios puedan trabajar.    Creo que es un problema de tiempo de espera, pero no tengo ni idea de cómo solucionarlo.

No indicas qué sistema operativo Windows estás usando, esto es para 2024 pero debería funcionar en 2024 también.https://www.ca.com/us/services-support/ca-support/ca-support-online/knowledge-base-articles.tec18545…

Sí. Tiene un retardo de 2 minutos, tiempo suficiente para que todos los servicios dependientes se inicien correctamente.    Creo que el proceso tarda mucho y Windows cree que se está ejecutando pero en realidad no es así.    Lo que pienso es que el temporizador de inicio de los servicios de Windows puede estar configurado a 2 minutos.    Tengo un servicio que normalmente tarda 1:55 en iniciarse, pero a veces tarda 2:02.    En esos días, el proceso muere y el servicio real no se ejecuta, pero Windows informa de que se está ejecutando.    Por lo tanto, si pudiera decirle a Windows que espere tres minutos en lugar de dos, debería iniciarse siempre.

Serviciospipetimeout

Cuando un servicio se inicia, comunica al Gestor de Control de Servicios cuánto tiempo tiene para iniciarse en lo que se llama el periodo de tiempo de espera del servicio. Si el Gestor de Control de Servicios no recibe un aviso de “servicio iniciado” del servicio dentro de este periodo de tiempo de espera, terminará el proceso que aloja el servicio.

El tiempo de espera suele ser inferior a 30 segundos. Si no se ajusta, el Administrador de Control de Servicios terminará el proceso. Para obtener información sobre cómo ajustar el tiempo de espera, consulte las instrucciones siguientes.

Error 1053: el servicio no ha respondido a la solicitud de inicio o control de forma oportuna

La razón es que hace algunas cosas de WCF en el método de inicio que funciona bien la mayor parte del tiempo, pero si tu ordenador está atascado en el inicio, por ejemplo, puede hacer que se tarde un poco más. Ahora me doy cuenta de que el código no debería estar estructurado así.

Como todas las aplicaciones, un servicio de Windows tiene un punto de entrada. En C#, esto se llama Main() y es un método estático en alguna clase. Dentro de la función Main() de tu servicio Windows, deberías tener algo parecido a esto:

Ahora, la clase MyWindowsService debería derivar de System.ServiceProcess.ServiceBase. Si eso es cierto, entonces puedes anular el método OnStart(), que es llamado cuando un comando de Inicio es enviado al servicio por el Administrador de Control de Servicios.

Entonces, la pregunta es en qué parte de esta cadena de eventos se está produciendo el retraso: en Main(), en el constructor del servicio o en el método de devolución de llamada OnStart(). ¿Has probado a depurar tu servicio? Una forma fácil de hacerlo es colocar la siguiente línea de código dentro de la función Main() de su servicio:

¿Qué es el tiempo de espera en el arranque? en línea

Si la segunda ejecución funciona, me hace pensar que es un problema de sincronización, es decir, que algo se ha detenido o iniciado y necesitaba tiempo para completarlo antes de poder continuar. Para averiguar esto puede ser tan simple como averiguar lo que hiciste justo antes de la ejecución, pero si está relacionado con el sistema/OS, es difícil de decir.    ¿Ejecutó esto justo después de un reinicio del sistema o de AGS, o después de una actualización del servicio?    No soy un experto en JSON ni mucho menos, así que sólo estoy dando algunas ideas, por si acaso.

Supongo que im un poco claro lo que causaría el objeto json de entrada para ser un error? este error fue lanzado en el primer intento y no se reinició uno de nuestros servicios de mapas y unos minutos más tarde la secuencia de comandos se volvió a ejecutar y se ejecutó con éxito y el servicio se reinició.dave

Si la segunda ejecución funciona, creo que se trata de un problema de sincronización, es decir, que algo se ha detenido o iniciado y necesita tiempo para completarse antes de poder continuar. Para averiguar esto puede ser tan simple como averiguar lo que hiciste justo antes de la ejecución, pero si está relacionado con el sistema/OS, es difícil de decir.    ¿Ejecutó esto justo después de un reinicio del sistema o de AGS, o después de una actualización del servicio?    Tal vez se necesita una “pausa” antes de que se ejecute. No soy un experto en JSON de ninguna manera, así que sólo estoy lanzando algunas ideas por ahí, por si acaso.

Santiago Paez