c# – 如何捕获异常并停止Topshelf服务?
发布时间:2020-12-15 17:37:14 所属栏目:百科 来源:网络整理
导读:我有一个tophelf windows服务,我想做一些检查(即如果一个xml文件存在),如果检查失败,我需要 Windows服务停止. 所以我尝试在Start()方法中进行检查,然后引发异常: public void Start(){ if (!File.Exists(_xmlFile) throw new FileNotFoundException(); // D
我有一个tophelf
windows服务,我想做一些检查(即如果一个xml文件存在),如果检查失败,我需要
Windows服务停止.
所以我尝试在Start()方法中进行检查,然后引发异常: public void Start() { if (!File.Exists(_xmlFile) throw new FileNotFoundException(); // Do some work here if xml file exists. } 但是,Windows服务作为异常之后的进程保持不变,然后我必须在任务管理器中手动杀死. 如果某些条件(即找不到文件)成立,是否有办法运行该服务? 解决方法
我已经“借用”了tophelf的功能设置的示例代码来说明一点:
HostFactory.Run(x => //1 { x.Service<TownCrier>(s => //2 { s.ConstructUsing(name=> new TownCrier()); //3 s.WhenStarted(tc => tc.Start()); //4 s.WhenStopped(tc => tc.Stop()); //5 }); x.RunAsLocalSystem(); //6 x.SetDescription("Sample Topshelf Host"); //7 x.SetDisplayName("Stuff"); //8 x.SetServiceName("stuff"); //9 }); 在上述代码运行之前,您将不得不放置文件系统检查.让我们再想一下吧.服务的一个重点就是确保它能够运行RUNS和KEEPS.您试图颠覆首先提供服务应用程序的基本原则.而不是试图停止服务,因为丢失的文件,找出一些方式来提醒你的支持人员,而不是做任何取决于那个丢失的文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |