【发布时间】: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 截图:
这些相关吗?
我还尝试重新安装服务,重新编译我的文件...我该如何解决这个问题? 错误立即出现,它不会等待任何超时!
【问题讨论】: