gpt4 book ai didi

c# - 如果有一个包罗万象,c# 服务会崩溃吗

转载 作者:行者123 更新时间:2023-11-30 13:50:13 28 4
gpt4 key购买 nike

我有一个服务,它是使用一个由 try catch block 包围的启动例程启动的,如下所示。

    protected override void OnStart(string[] args)
{
try
{
Program.Start();
}
catch (Exception e)
{
Logger.Error("Exception during Service Start");
}
}

偶尔在某些机器上 (1/100) 它会偶尔打印出 Program.Start 的最后一行(日志消息),然后失败,没有日志消息或事件日志消息。这应该是可能的吗?

谢谢

编辑:该服务确实启动了一些其他线程,但它们以相同的方式封装

编辑:Logger 是 log4net 的包装器 - 它在很多(100 多台)机器上非常可靠地工作(虽然是的,这可能是原因)

最佳答案

如果异常从已启动的线程中抛出但未被捕获,则服务可能会崩溃。

您要为每个应用域未处理的异常添加处理程序吗?

例如:

  AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler( CurrentDomain_UnhandledException );

编辑此外,您还有我忘记提及的 Application.ThreadException 事件: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx

关于c# - 如果有一个包罗万象,c# 服务会崩溃吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090058/

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