通过应用程序设置在ASP.NET Core Azure Web App的web.config中设置requestTimeout

时间:2019-04-04 18:12:44

标签: asp.net-core azure-web-sites

我有一个看起来像这样的web.config,并且已添加为我的解决方案中许多应用程序的链接:

<configuration>
  <!-- For more info to customize the asp.net core module see https://go.microsoft.com/fwlink/?linkid=838655 -->
  <system.webServer>
    <!-- As connection proxy request contains double escape sequence, we need to enable it. background Azure ARM Apis are enabled it.  -->
      <security>
      <requestFiltering allowDoubleEscaping="true" />
    </security>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout"/>
  </system.webServer>
</configuration>

其中一项服务可能会长时间运行单个请求,因此我想增加该服务的IIS请求超时,这可以通过添加到aspNetCore配置中来实现,如下所示:

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" requestTimeout="00:10:00"/>

但是,鉴于此web.config是以其他方式共享的,并且我不想更改其他应用程序的行为,因此我想通过我的手臂模板中的应用程序设置进行配置。

当我尝试以下操作时,出现错误消息%REQUEST_TIMEOUT%不是有效时间,并且部署无法启动Webapp。

如何启用应用设置以插入请求超时字段?

2 个答案:

答案 0 :(得分:0)

Azure App Service不允许增加 requestTimeout ,限制为230秒-请参见Why does my request time out after 230 seconds?

我建议您查看Pollinglink2)-这是处理长期运行的op的标准REST模式。

其他资源:

答案 1 :(得分:0)

如果使用的是Azure DevOps,则在部署过程中会使用一些选项:

    如果您使用Azure App Service部署任务,则可以在部署期间启用
  1. “ XML变量替换”。

  2. 添加powershell任务,以使用管道变量中的值更改请求超时。

注意:如果在web.config中将requestTimeout设置为10分钟,则请求将继续运行直到230秒。但是客户端将在230秒后被应用程序服务终止,并且会收到错误消息。