【问题标题】:.NET Core Error 1053 the service did not respond to the start or control request in a timely fashion.NET Core Error 1053 服务没有及时响应启动或控制请求
【发布时间】:2021-10-12 21:07:25
【问题描述】:

我在 this 之后从我的 .NET Core 项目开始创建了一个 Windows 服务

之后,我将它正确安装在我的工作机器上并启动它。

这是我的服务类:

using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading.Tasks;

namespace xxx
{
    public class WindowsService
    {
        static void Main(string[] args)
        {
            System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);

            using (var service = new Service())
            {
                ServiceBase.Run(service);
            }
        }
    }

    internal class Service : ServiceBase
    {
        public Service()
        {
            ServiceName = "...";
        }

        protected override void OnStart(string[] args)
        {
            try
            {
                base.OnStart(args);
                Task.Run(() => xxxx);
            }
            catch (Exception ex)
            {
                EventLog.WriteEntry("Application", ex.ToString(), EventLogEntryType.Error);
            }
        }

        protected override void OnStop()
        {
            base.OnStop();
        }

        protected override void OnPause()
        {
            base.OnPause();
        }
    }
}

所以,我复制了文件并将其安装在服务器上。在这里,当我尝试启动它时,我得到:

在此之后,我开始大量搜索...例如,我尝试了以下步骤:

转到开始 > 运行 > 并输入 regedit

导航到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

选中控制文件夹后,在右侧窗格中单击鼠标右键 - 选择新的 DWORD 值

将新的 DWORD 命名为:ServicesPipeTimeout

右键单击 ServicesPipeTimeout,然后单击修改

点击十进制,输入“180000”,然后点击确定

重启电脑

这里的奇怪点是语音 ServicesPipeTimeout 不存在,而我创建了它。将服务器与我的工作机器进行比较,服务器中还没有其他值。它们是:

  • ServicesPipeTimeout
  • OsBootstatPath

这里是来自服务器的 regedit 截图:

这些相关吗?

我还尝试重新安装服务,重新编译我的文件...我该如何解决这个问题? 错误立即出现,它不会等待任何超时!

【问题讨论】:

    标签: .net-core service regedit


    【解决方案1】:

    当我将项目切换到另一个位置时遇到了这个问题。

    当我移动项目时,我也复制了 bin/debug 文件夹中的文件。在我清除调试文件夹并创建新版本后,问题得到解决。

    看看这是否有效!

    【讨论】:

      【解决方案2】:

      这是一个有点老的问题,但有人可能会觉得这很有用。

      所以我在 Program.cs 中有以下代码: builder.SetBasePath(Environment.CurrentDirectory).AddJsonFile("appsettings.json")

      改为: builder.SetBasePath(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)).AddJsonFile("appsettings.json")

      这似乎解决了我的问题。 这个错误的问题是它是超级通用的。 希望MS将来能给我们一些日志。

      【讨论】:

        猜你喜欢
        • 2011-03-28
        • 2014-08-05
        • 2011-01-05
        • 2011-12-29
        • 2015-12-28
        • 1970-01-01
        • 2016-03-22
        • 2023-03-23
        相关资源
        最近更新 更多