我从我的 .NET Core 项目开始创建了一个 Windows 服务 this
此后,我在我的工作机器上正确安装了它并启动了它。
这是我的服务类别:
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
选择控制文件夹后,右键单击右侧 Pane ,然后 - 选择新的 DWORD 值
将新的 DWORD 命名为:ServicesPipeTimeout
右键单击 ServicesPipeTimeout,然后单击“修改”
点击“十进制”,输入“180000”,然后点击“确定”
重新启动计算机
这里奇怪的一点是,语音 ServicesPipeTimeout 并不存在,而是我创建的。将服务器与我的工作机进行比较,还有服务器所没有的其他值(value)。他们是:
- 服务管道超时
- OsBootstatPath
这里是来自服务器的 regedit 的屏幕截图:
这些相关吗?
我还尝试重新安装服务,重新编译我的文件...我该如何解决这个问题? 错误立即出现,不等待任何超时!
最佳答案
这是一个有点老的问题,但有人可能会发现这很有用。
所以我在 Program.cs 中有以下代码:
builder.SetBasePath(Environment.CurrentDirectory).AddJsonFile("appsettings.json")
修改为:
builder.SetBasePath(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)).AddJsonFile("appsettings.json")
这似乎解决了我的问题。 这个错误的问题在于它是 super 通用的。 希望微软将来能给我们一些日志。
关于.net-core - .NET Core 错误 1053 服务未及时响应启动或控制请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59951001/