Microsoft Windows 中制作开机自动运行的程序非 Windows service 服务啦,自动运行,方便设置。
正好制作了一个 Chat 的小程序,服务器端使用的是控制台应用程序(最小化后只占用 800k 内存),不过必须登陆进入系统以后才能够启用运行,本着学习的精神,修改了一下,变成了 Windows service 服务。步骤如下:
1、把之前的程序,重新做成一个类 ChatServer.cs,然后在服务中启动
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
chatServer = new ChatServer();
chatServer.Start();
}
{
// TODO: 在此处添加代码以启动服务。
chatServer = new ChatServer();
chatServer.Start();
}
2、Program.cs 中由于只运行一个服务进程,所以简化语句
static void Main()
{
ServiceBase.Run(new ChatService());
}
{
ServiceBase.Run(new ChatService());
}
3、添加 Windows service 安装类,服务运行 Account 设置成 ServiceAccount.LocalSystem,运行模式设置为手动,以防服务运行异常导致系统自动重起后还是会自动运行。
4、编译,然后安装。有个小插曲导致多次安装失败,在安装时候文件名必须与编译出来的一模一样(区分大小写)。。。。。。
做个备忘录,列个基本点,防止以后忘记 🙂