gpt4 book ai didi

c# - 如果 Windows 服务在崩溃后必须重新启动,我该如何让它运行一些代码?

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:16 27 4
gpt4 key购买 nike

假设 Windows 服务崩溃,并由于某些恢复选项而自动重新启动。我想在程序 (C#) 中运行一些代码,以便在发生这种情况时执行一些网络操作(发送关闭警报)。

是否有我可以应用的事件或我可以在该事件发生后运行的代码?

谢谢!

最佳答案

在这种情况下,我会做的不是在程序失败时写出一些东西,而是让程序将某种记录写到持久存储中,然后在检测到正在执行干净关闭时将其删除。

public partial class MyAppService : ServiceBase
{
protected override void OnStart(string[] args)
{
if(File.Exists(Path.Combine(Path.GetTempPath(), "MyAppIsRunning.doNotDelete"))
{
DoSomthingBecauseWeHadABadShutdown();
}
File.WriteAllText(Path.Combine(Path.GetTempPath(), "MyAppIsRunning.doNotDelete"), "");
RunRestOfCode();
}

protected override void OnStop()
{
File.Delete(Path.Combine(Path.GetTempPath(), "MyAppIsRunning.doNotDelete"));
}

//...
}

这很容易将文件替换为注册表项或数据库中的记录。

关于c# - 如果 Windows 服务在崩溃后必须重新启动,我该如何让它运行一些代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35563579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com