Windows Service自托管应用程序,在启动时,必须预先加载数据,这可能需要60秒。因此应用程序在启动时调用RequestAdditionalTime
以避免超时错误。
以前工作正常。
最近我们升级到ASP.NET Core 2.0,在Windows Service中自托管,该方法在Microsoft doc here中有所描述。 TargetFramework
设置为net472
在WebHostService
的派生类中,RequestAdditionalTime
的调用如下所示。
public class CustomWebHostService : WebHostService
{
public CustomWebHostService(IWebHost host) : base(host)
{
}
protected override void OnStarting(string[] args)
{
this.RequestAdditionalTime(1000 * 60 * 5);
base.OnStarting(args);
}
protected override void OnStarted()
{
this.RequestAdditionalTime(1000 * 60 * 5);
base.OnStarted();
}
}
但它不起作用。
该服务未及时响应启动或控制请求。 等待XXXX服务连接时达到超时(30000毫秒)。
现在我通过编辑注册表来修复此问题
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
"ServicesPipeTimeout"=dword:0002bf20
有谁知道为什么RequestAdditionalTime
不再起作用了?
答案 0 :(得分:0)
您要求5分钟,但最高难度为2分钟。任何大于两分钟的值都将被忽略,并且限制将保持在注册表中配置的值。