You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何延长本地IIS Express中ASP.NET Core 2.0的请求超时

解决IIS Express调试ASP.NET Core 2.0 API时的2分钟超时问题

问题场景

我在本地Win10开发环境中,用VS2017搭配IIS Express调试ASP.NET Core 2.0 API时碰到了个棘手的问题:我的API实际需要3分50秒才能完成业务处理,但IIS Express默认的2分钟响应超时提前触发,直接返回502.3 - Bad Gateway错误,完全等不到API处理结束。

尝试过的无效方案

网上大多数教程都提到修改项目里的web.config文件,通过添加requestTimeout配置来延长超时时间,示例代码如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore requestTimeout="00:20:00" processPath="dotnet" arguments=".\MyAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

但实际调试时发现,本地IIS Express运行ASP.NET Core 2.0 API并不读取项目中的web.config,而是依赖launchSettings.json文件,可我翻遍这个文件也找不到相关的超时设置项。我还尝试把上述web.config放到项目的wwwroot文件夹里,依然没有效果(不过这个方案在Azure部署的场景下是有效的)。

2018年5月27日更新:有效解决方案

后来发现,搭配ASP.NET Core 2.0的IIS Express,实际使用的是一个类似web.config的applicationhost.config文件,它的路径在项目根目录下的.vs/config文件夹中。

打开这个文件,找到对应你的API项目的<location>节点,在节点内的<aspNetCore>标签中设置requestTimeout值即可。比如我把超时时间设为20分钟,修改后的配置片段如下:

<location path="MyAPI">
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <httpCompression>
      <dynamicCompression>
        <add mimeType="text/event-stream" enabled="false" />
      </dynamicCompression>
    </httpCompression>
    <aspNetCore requestTimeout="00:20:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
  </system.webServer>
</location>

修改保存后,我的开发系统成功突破了默认的2分钟超时限制,能够正常等待API完成处理后返回响应。

内容的提问来源于stack exchange,提问作者whiskytangofoxtrot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:51:36