.NET Core 错误1053 服务没有及时响应启动或控制请求

.NET Core Error 1053 the service did not respond to the start or control request in a timely fashion

我在 this

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

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

这是我的服务class:

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

有了控制文件夹selected,右击右边的窗格,然后-select新的DWORD值

将新的 DWORD 命名为:ServicesPipeTimeout

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

单击“十进制”,键入“180000”,然后单击“确定”

重启电脑

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

这里是服务器上regedit的截图:

这些相关吗?

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

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

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

看看这是否有效!

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

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

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

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