Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 36585|Respuesta: 3

[ASP.NET] C# es un servicio de Windows que ejecuta tareas regularmente

[Copiar enlace]
Publicado en 27/4/2019 17:56:09 | | | |


prefacio

A raíz del artículo anterior sobre el Programador de tareas de Windows, este artículo recogerá la creación de los servicios de Windows.
Entorno y herramientas

>Sistema Windows 10

>VS 2017

Mensaje de texto

1: Crear una nueva solución y crear un servicio de Windows. El nombre es "WindowsServiceDemo.exe






2: Haz doble clic en el archivo "Service1.cs", haz clic derecho en el espacio en blanco > selecciona "Añadir instalador".







3: En los dos componentes generados, haz clic en el componente "serviceProcessInstaller1" y en el formulario de propiedades, configura el tipo de cuenta "Account" como "LocalSystem".





4: En los dos componentes generados, haz clic en el componente "serviceInstaller1", en el formulario de propiedades, establece las propiedades correspondientes y luego guarda.




5: Haz clic derecho en "Service1.cs" – > selecciona "Ver código".






6: En el método correspondiente, escribe la lógica de procesamiento. Método OnStart(): se refiere al método que entra cuando inicia el servicio de Windows. OnStop(): Como indica su nombre, esta es la forma de entrar cuando el servicio se detiene. Podemos escribir un temporizador para que el programa procese la lógica en el coito normal.






7: Crear dos archivos de bloc de notas, nombrar y modificar los nombres de sufijo "Install.bat" y "Uninstall.bat" respectivamente Nota: El nombre del sufijo es .bat. Pégalo dentro del proyecto. Y cambia el atributo a "Copiar a local".



8: Los dos archivos que acabamos de crear son para instalar y desinstalar el servicio. Ahora escribe el código por lotes en estos dos archivos y guarda.
Abre el archivo "Install.bat" y escribe el siguiente código
Nota: "WindowsServiceDemo.exe" es el programa exe que acaba de generar. "AServiceTest" es el conjunto "ServiceName" en el componente "ServiceInstaller1".

Abre el archivo "Uninstall.bat" y escribe el siguiente código


9: F6 lo genera. En el directorio "bin\Debug" del proyecto. Haz clic derecho en "Install.bat" > selecciona "Ejecutar como administrador".



Una vez completada la instalación del servicio. Podemos ver que el archivo "Log.txt" escribe una línea de datos cada 10 segundos.


Podemos ver los servicios instalados.
Run – > introduce "services.msc" enter.



Detengan el servicio ahora. Haz clic derecho en "Uninstall.bat" > selecciona "Ejecutar como administrador".



Después de desinstalar el servicio. Podemos ver que el archivo "Log.txt" también tiene una línea de datos escrita.



#Depuración de servicios de Windows

Los servicios de Windows no pueden iniciarse directamente con F5, F10 depurado. Entonces, ¿cómo depurar el programa si hay una anomalía?
1: Primero, usa el administrador para ejecutar el archivo "Install.bat" y deja que el programa se ejecute primero.

2: Vuelve a VS y selecciona "Depurar" en la barra de menús – > selecciona "Adjuntar al proceso".





3: En el formulario emergente, marca "Mostrar todos los procesos de los usuarios", encuentra la .exe aplicación que generamos y haz clic en "Adjuntar".




4: Romper el punto en el método, de modo que cuando se ejecuta durante un tiempo determinado, pueda activar la depuración.



Epílogo

La depuración de servicios de Windows es muy problemática, a veces el programa se escribe en un problema y el servicio no puede iniciar, lo que dificulta la depuración. Generalmente, escribir servicios para Windows irá acompañado de una aplicación de consola. Depura la app de consola y luego muévela a Windows Services. El siguiente tema describirá una forma más sencilla de crear un servicio de Windows.


Nota: Los archivos batch que inician y desinstalan ambos programas deben ejecutarse como administradores. Si no, será incorrecto.









Anterior:Algoritmos comunes para compartir big data (aplicaciones)
Próximo:El uso de Topshelf para tareas de ejecución programada en C#
Publicado en 8/5/2019 10:59:16 |
Gracias por compartirlo, justo a tiempo, envíamelo
Publicado en 22/6/2020 14:04:33 |
Siempre reporta este error
 Propietario| Publicado en 7/9/2020 15:21:59 |

El comando que se ejecuta está mal, este servicio no está instalado. Si lo instalas tocando la línea de comandos, puedes consultar mi próxima publicación.
El uso de Topshelf para tareas de ejecución programada en C#
https://www.itsvse.com/thread-7503-1-1.html

Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com