博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows 服务 创建 和 安装 -摘自网络
阅读量:6414 次
发布时间:2019-06-23

本文共 5450 字,大约阅读时间需要 18 分钟。

What a Windows Service is

  • Enables you to create long-running executable applications that run in their own windows session.
  • Can be automatically started when the computer boots, can be paused and restarted without any user interaction.
  • Easily installable by running the command line utility InstallUtil.exe and passing the path to the service's executable file.

Why a Windows Service?

One of the most common requirements of some businesses is long-running scheduled jobs based on some time interval. For example: sending a newsletter everyday afternoon or send an email alert to the customer for every one hour.
So building a Windows Service could be one of the reliable solutions to do the goal that can do the required job in the behind the scenes without interfering others users on the same computer.
Introduction
This article explains a step-by-step process of developing and installing a Windows Service to do a scheduled job based on a time interval.
Open Visual Studio and from the menus select "File" -> "New" -> "Project...".
A New Project window will open. Choose "Visual C#" >> "Windows" project type and select "Windows Service" from the right hand side and name the project "TestWindowsService" as shown in the following screenshot.
new project window
After you click "OK", the project will be created and you will see the design view of the service as shown in the following screen. Right-click the "Service1.cs" file in Solution Explorer and rename it "to" Scheduler or any other name that you want to give it. Then click “click here to switch to code view”.
code view
In the code view, you can see two methods called OnStart() and OnStop(). The OnStart() triggers when the Windows Service starts and the OnStop() triggers when the service stops.
OnStop triggers
Right-click the TestWindowService project, add a new class and name it "Library.cs". This class will be useful to create the methods that we require in the project. If your TestWindowService is a big project, you can create a ClassLibrary project and reference it to your TestWindowService.
new class
Library.cs
Make the class public and declare it as a Static class.
Static class
Create a log method (WriteErrorLog) to log the exceptions.
log method
Create one more log method (WriteErrorLog) to log the custom messages.
log method to log
Scheduler.cs
Now return to our Scheduler.cs file and declare a Timer.
Timer
Write the following code in the OnStart() method and timer1_Tick():
timer1_Tick
Write the following code in the OnStop() method:
OnStop method
Scheduler.cs [Design]
Now return to the Scheduler.cs [Design] and right-click on the editor window then click "Add Installer".

Add Installer
Then you can see that there will be a new file called "ProjectInstaller.cs" as shown in the following.
new file called ProjectInstaller
Installer
Right-click on the "serviceInstaller1" and click "Properties".
 
Properties
Change the ServiceName to "Test Windows Service" (or your own name) and StartType to "Manual" (or you can choose "Automatic" if you need this service to be automatic).
Test Windows Service
Right-click the serviceProcessInstaller1, go to the properties window and change "Account" to "LocalSystem".
 
change Account property
Build the project to see the .exe file at the location where you created the solution.
Build the project
That's all. Your Windows Service is all ready to install in your machine.
Installing the Windows Service
Go to "Start" >> "All Programs" >> "Microsoft Visual Studio 2012" >> "Visual Studio Tools" then click "Developer Command Prompt for VS2012".
Type the following command:
cd <physical location of your TestWindowService.exe file>
in my case it is :
cd C:\Sandbox\WindowServices\TestWindowService\TestWindowService\bin\Debug
 
Installing the Window Service 
 
Next type the following command:
InstallUtil.exe “TestWindowService.exe”
and press Enter.
TestWindowService
Here you go, the TestWindowService is installed successfully.
installed successfully
How to start the Windows Service
Since we chose StartType = Manual, we must start the Windows Service manually by visiting the "Services and Applications" window in the computer.
StartType
Select the Test Windows Service and click "Start" to start the service. Go to the "TestWindowService.exe" location to see the logs.
LogFile.txt
Since we are tracking our Windows Service by writing some logs to a .txt file called LogFile.txt, we can test the working condition of our Windows Service by looking at this log file.
LogFile
As you can see in the preceding screen, you can find the LogFile.txt file at the physical location that your TestWindowService solution exists.
Click the LogFile.txt to see the logs, whether our service is doing the job that we set it to do for every 30 seconds.
 
logs
If you look at the preceding log file, we can prove that our Windows Service is running and doing the job that we wanted on a 30 seconds interval.
Stop the Windows Service
To stop the Windows Service, just click "Stop" link in the Services window by selecting our TestWindowService.
Logfile after stopping our service:
 
Stop the window service

Type the following two commands in the "Developer Command Prompt for VS2012" to uninstall the TestWindowService.exe.

  1. cd <physical location of your TestWindowService.exe file>
    and press Enter. In my case it is:
    cd C:\Sandbox\WindowServices\TestWindowService\TestWindowService\bin\Debug
  2. InstallUtil.exe /u “TestWindowService.exe”
    And press enter.
    After executing the preceding commands, the TestWindowService will be uninstalled from your computer.

Summary

In this article, I explained how to develop a Windows Service and install it using InstallUtil.exe from a command prompt.

I believe that I have explained each step clearly that can be easily understandable for a beginner to develop and install a Windows Service.

转载地址:http://oebra.baihongyu.com/

你可能感兴趣的文章
电力线通信载波模块
查看>>
linux vim详解
查看>>
Java23种设计模式案例:策略模式(strategy)
查看>>
XML解析之DOM4J
查看>>
图解微服务架构演进
查看>>
SQL PATINDEX 详解
查看>>
一些常用的网络命令
查看>>
CSP -- 运营商内容劫持(广告)的终结者
查看>>
DIV+CSS命名规范有助于SEO
查看>>
js生成二维码
查看>>
C指针练习
查看>>
web项目buildPath与lib的区别
查看>>
php对redis的set(集合)操作
查看>>
我的友情链接
查看>>
ifconfig:command not found的解决方法
查看>>
js使用正则表达式判断手机和固话格式
查看>>
计算机是怎么存储数字的
查看>>
mysql简单的单表查询详解
查看>>
mysql性能优化之Tuning-primer.sh的使用
查看>>
Unix的发展史
查看>>