升级到ASP.NET Core后,RequestAdditionalTime无法正常工作

时间:2017-12-22 01:53:44

标签: .net asp.net-core .net-core asp.net-core-2.0

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不再起作用了?

1 个答案:

答案 0 :(得分:0)

您要求5分钟,但最高难度为2分钟。任何大于两分钟的值都将被忽略,并且限制将保持在注册表中配置的值。