首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何考虑崩溃以获得Windows服务恢复的“后续故障”

如何考虑崩溃以获得Windows服务恢复的“后续故障”
EN

Stack Overflow用户
提问于 2016-08-12 14:03:54
回答 1查看 567关注 0票数 0

我们有一个用C#编写的Windows,它基本上是在某个端口上启动一个Web。服务被配置为在第一次故障和第二次故障时重新启动。“后续失败”设置为“不采取任何行动”。如果这个端口可能被占用,服务会以未处理的异常崩溃,而在未处理的异常回调中,我们会将转储文件写入某个应用程序目录。无论出于什么原因,Windows总是一次又一次地重新启动该服务,即使它已经多次崩溃。我们的服务结构如下:

代码语言:javascript
复制
public class WinService : ServiceBase
{
    private WebApiHostWrapper _apiHost;
    private Thread _workerThread;

    public WinService()
    {
        InitializeComponent();
        ServiceName = "MyService";
        // register handler for writing dumpfiles
        AppDomain.CurrentDomain.UnhandledException += UnhandledExceptions.DomainUnhandledException; 
    }

    protected override void OnStart(string[] args)
    {
        _workerThread = new Thread(InternalStart) { Name = "StartupThread" };
        _workerThread.Start(args);
    }

    private void InternalStart(object args)
    {
        if (null == _service)
        {
            Thread.MemoryBarrier();
            _apiHost= new WebApiHostWrapper();
            _apiHost.Start((string[])args); // exception here
        }
    }

    protected override void OnStop()
    {
        if (null != _workerThread)
        {
            _apiHost.Dispose();
            _apiHost= null;
            if (!_workerThread.Join(5000))
            {
                _workerThread.Abort();
            }
            Thread.MemoryBarrier();
            _workerThread = null;
        }
    }

在Windows事件日志中,我看到4个条目。

  • 服务已成功启动。(资料来源: MyService)
  • 申请..。堆栈跟踪等(来源:.NET运行时)
  • 错误应用程序名称..。dll和exe名称(源:应用程序错误)
  • 故障桶0型..。(来源: Windows错误报告)

在端口已经在使用的情况下,这会导致服务一次又一次崩溃,使系统充斥转储文件。Windows将始终独立于设置重新启动服务。是否有一种特殊的方法,如何使“后续故障”得到考虑,而不重新启动服务?

EN

回答 1

Stack Overflow用户

发布于 2016-08-15 07:22:26

我发现了导致“第一次失败”被执行的问题。我们将“重置失败计数”设置为0天。将此值设置为1后,服务崩溃2次,然后不再重新启动。

资料来源:

https://social.technet.microsoft.com/Forums/windows/en-US/3db76753-4607-4a20-97a0-790c73e379cc/the-actions-after-system-service-failure?forum=winserver8gen

Clarification on Windows Service Recovery Actions Settings

http://www.happysysadm.com/2011/12/understanding-windows-services-recovery.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38919957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档