ASP.NET 核心忽略大于 00:05:00 的 requestTimeout

ASP.NET Core ignores requestTimeout greater that 00:05:00

我有 ASP.NET 核心 REST 服务(IIS 10、没有托管代码的应用程序池、.NET Core Runtime 2.0.5)。

Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <httpRuntime executionTimeout="100000" maxRequestLength="536870912" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="536870912" />
      </requestFiltering>
    </security>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore requestTimeout="00:45:00" forwardWindowsAuthToken="false" processPath="dotnet" arguments=".\app.dll" startupTimeLimit="3600" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
      <environmentVariables />
    </aspNetCore>
  </system.webServer>
</configuration>
<!--ProjectGuid: 1a91d629-da53-4fc1-a236-5d116a3d9658-->

我希望超过 45 分钟的请求应该以 502 错误结束。

但是请求在 ~5 分钟(~300-310 秒)后以 502 完成。

我尝试将此设置更改为 00:03:00(3 分钟)。大约 3 分钟后,该请求完成并返回 502 状态代码。

看起来任何大于 00:05:00 的值都会被忽略。

问题是我哪里忘记看这个设置了?

好吧,是我的错。

首先我忘了用服务(在内网)测试来自计算机的请求。当我这样做时,我发现在这种情况下,服务可以正常工作而无需约 5 分钟超时。虽然我 运行 来自互联网的相同请求,但我仍然遇到这个问题

所以下一个嫌疑人是 Internet 和 Intranet 之间的代理。所以我改变了代理的超时时间,现在我有很好的-运行宁ASP.NET核心Web服务。