servicio ser pudo para marcado iniciar existe especificado error equipo eliminado dependencia conexiones archivo .net

.net - pudo - servicio especificado se ha marcado para ser eliminado



Beneficios de la aplicaciĆ³n de consola sobre el servicio de Windows (8)

Tengo una aplicación .Net Console que usa un evento programado se iniciará, llame a un método de servicio mweb y al cierre. Esto funciona cada hora / cada día. Si bien no hay nada "incorrecto" con la implementación, me preguntaba si había algún beneficio al implementar esto como un servicio de Windows.

¿Alguien tiene alguna idea de cuál sería la mejor práctica en este caso?


Creo que lo que has hecho es la mejor práctica. Nada que odio más que aplicaciones que agregan sus propios servicios solo para hacer algo menor periódicamente. Con la integración actualizada del programador de tareas / registro de eventos en> Vista, aún menos aplicaciones realmente necesitan un servicio, y si lo hacen, puede ser a pedido.

Estás haciendo que el mundo sea mejor.

:-)

Ah, y ser una aplicación de consola lo hace para que pueda ejecutarlo fácilmente de forma manual si es necesario, lo que es excelente para la capacidad de búsqueda de errores.

Para aclarar: continúa, lo estás haciendo bien.


Una cosa importante a tener en cuenta es que el espacio de nombres System.Drawing es compatible con las aplicaciones de consola, lo que significa que puede imprimir. Funciona de alguna manera en los Servicios de Windows, pero no es compatible y no es completamente estable.


Ventaja: si su máquina se reinicia (es decir, un servidor), no tiene que iniciar sesión para que la cosa vuelva a funcionar.

Estoy de acuerdo con que los servicios de Windows de depuración SUCKS! Es horrible, y MS realmente debería abordar la capacidad de depurar un servicio.

Sin embargo ... hay algunas herramientas de freeware que ayudan a procesar de manera considerable. Anderson Imes tiene una buena utilidad que hace que escribir un servicio de Windows sea como escribir una aplicación de consola, incluso durante el ciclo de depuración.

Consulte sus utilidades para la depuración del servicio en http://theimes.com/files/

La mejor parte de su implementación es que se trata de un cambio de 1 línea en su código, que puede administrar fácilmente con el parámetro #de DEBUG si no desea tener su biblioteca en su instancia de producción.


Hay una solución simple para los servicios de depuración. Crea una consola / aplicación de servicio combinada.

Verificas algún argumento de la línea de comandos (como -debug) y luego ejecutas tu código OnStart, Espera a que pulse la tecla, ejecuta el código OnStop.

Utilizo el mismo método para proporcionar una interfaz para instalar, desinstalar, iniciar y detener mi servicio desde el mismo EXE.


Encuentro que los servicios de Windows son difíciles de depurar, así que tiendo a usarlos solo cuando:

(A) Lo que estoy haciendo es bastante complejo o

(B) necesita estar ejecutándose todo el tiempo (Ejemplo: Monitoreo de cambios)

Encuentro que la mayoría de las cosas se pueden lograr con una aplicación de consola, algunos argumentos de línea de comando y el Programador de Windows.


Un servicio es diferente de una aplicación de tres maneras:

  1. Se ejecuta sin que un usuario inicie sesión en el sistema
  2. No puede tener ninguna interfaz de usuario (la consola también es una interfaz de usuario)
  3. Puede ejecutarse bajo derechos elevados (cuenta SYSTEM) y así realizar acciones que no están permitidas para los usuarios.

Las preguntas para hacer aquí son: ¿Necesita las diferentes opciones que le puede brindar un servicio? Si la respuesta es no, entonces no use un servicio.

De su pregunta deduzco que necesita una aplicación de fondo sin ninguna interfaz de usuario (elemento 2 anterior). Parece que no necesita los artículos 1 o 3. Puede obtener una aplicación de fondo pura sin ventana (consola o cualquier otra) al no crear una. Simplemente crea una aplicación simple de Windows y cambia

static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }

a

static class Program { [STAThread] static void Main() { // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Form1()); DoWhateverYouWant(); } }

¡Oh, sí, y Chris tiene toda la razón al decir que los servicios de depuración son un verdadero dolor!


Los dos puntos de Creego y 3 puntos de treb no se pueden negar. Pero, descubrí que SQL Server Agent 05/08 / R2 es un programador de tareas muy confiable y útil. Es más confiable que el Programa de tareas de Windows, y no debe preocuparse por los derechos de lote o por tener un usuario conectado.

Tengo un programa de sistema de fondo que se ejecuta cada 2 minutos a través del Agente SQL Server. He considerado convertirlo a un servicio de Windows, pero no puedo justificarlo.

Sin embargo, en otra situación, las escalas podrían inclinarse fácilmente.


No es tu pregunta, pero generalmente hago una combinación de los dos enfoques.

Utilizo una consola para fines de depuración y un servicio de Windows que comparte la misma biblioteca y las mismas reglas.