Asp.net core 如何在IISExpress中测试请求超时

Asp.net core 如何在IISExpress中测试请求超时,asp.net-core,iis-express,asp.net-core-3.1,Asp.net Core,Iis Express,Asp.net Core 3.1,我有一个asp.NETCore3.1应用程序,它提供了一个简单的web服务。事实上,它是Visual Studio的模板API应用程序,包括其WeatherForecastController 使用web服务的应用程序也是由我开发的,我想对请求超时启动一些行为测试,以了解我的web服务以及我的消费者应用程序如何处理超时。 因此,我在webservice的web.config中添加了一个定义的请求超时: <system.webServer> <handlers>

我有一个asp.NETCore3.1应用程序,它提供了一个简单的web服务。事实上,它是Visual Studio的模板API应用程序,包括其WeatherForecastController

使用web服务的应用程序也是由我开发的,我想对请求超时启动一些行为测试,以了解我的web服务以及我的消费者应用程序如何处理超时。
因此,我在webservice的web.config中添加了一个定义的请求超时:

  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore requestTimeout="00:00:20" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" hostingModel="OutOfProcess">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_HTTPS_PORT" value="44382" />
        <environmentVariable name="COMPLUS_ForceENC" value="1" />
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
很简单,没什么特别的

现在,我面临的挑战是,一旦超过了定义的超时限制,我会期望出现某种超时异常。但这并没有发生。实际上,web.config中的超时设置似乎被完全忽略。
如何在IISExpress中测试超时设置?我是不是错过了一个场景?或者,只有当我附加了调试器时才会忽略超时?

requestTimeout属性不适用于进程内托管。。你能试着用Kestrel托管,看看它是否有效吗?它不是进程中的,而是进程外的(请参阅web.config=>
hostingModel=“OutOfProcess”
)“web服务的web.config”,那么该web.config是哪条路径?因为它仍然包含
%LAUNCHER\u PATH%
,所以不太可能是正确的。
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
    try
    {
        Thread.Sleep(300000);
        var rng = new Random();
        return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
        throw;
    }
}