用VS编写的Windows服务,不想安装服务,但是想在VS里面调试的方法
- 改写Program.cs方法
示例如下
static void Main(string[] args)
{
if (Environment.UserInteractive || args.Contains("--console"))
{
var service = new YourService(); // 你的服务类
service.OnStartSimulated(args);
Console.WriteLine("服务已启动,按任意键停止...");
Console.ReadKey();
service.OnStopSimulated();
}
else
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new YourService() // 你的服务类
};
ServiceBase.Run(ServicesToRun);
}
}
- 在你的服务类里面编写OnStartSimulated 和OnStopSimulated两个方法
public void OnStartSimulated(string[] args) => OnStart(args);
public void OnStopSimulated() => OnStop();
- 确保你的程序创建的是控制台应用程序,如果不是,使用以下方法更改
选中项目——右键属性——应用程序——控制台应用程序,如下图
Windows 服务启动失败排查
运行 eventvwr.msc 查看报错信息