ASP.NET Core如何设置请求超时时间

时间:2023-02-24 10:09:05

如果一个请求在ASP.NET Core中运行太久,会导致请求超时,目前ASP.NET Core对请求超时的设置比较麻烦,本文列出目前收集到的一些方法,供大家参考。

部署ASP.NET Core到IIS的设置方法


如果你的ASP.NET Core项目是部署在IIS上的,那么可以在ASP.NET Core项目发布后生成的web.config文件中,进行如下设置:

<?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="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>

通过添加aspNetCore节点和设置requestTimeout属性,可以将请求的超时时间设置为你想要的值,上面就设置为了20分钟。

虽然不知道requestTimeout的最大值可以设置到多少,但是试了下设置到100小时30分钟是没有问题的

requestTimeout="100:30:00"

如果一个Http请求100小时都还没执行完那也是可以了。。。但是也不要把requestTimeout设置得非常大(例如1000小时),那样IIS会报错。

在Visual Studio中使用IIS Express调试时的设置方法


一般在使用Visual Studio调试ASP.NET Core时,我们都会选择IIS Express作为Web服务器,下面就介绍下如何在IIS Express中设置web.config文件的超时时间。

在Windows任务栏上选中IIS Express:

ASP.NET Core如何设置请求超时时间

右击IIS Express图标,选择Show all applications:

ASP.NET Core如何设置请求超时时间

在弹出的窗口列表中,选中你要更改超时时间的application,然后点击底部的Config链接,这样会打开站点的applicationhost.config文件。

然后在aspNetCore节点上应用requestTimeout属性即可:

requestTimeout="00:20:00"

例如:

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

最后保存applicationhost.config文件即可。

在代码层面设置超时时间


我们还可以在ASP.NET Core的代码层面,通过在项目Program.cs文件中添加.UseKestrel(...)BuildWebHost方法中,来设置KeepAliveTimeout属性的值,从而设置请求的超时时间,可以结合上面介绍的web.config中的requestTimeout属性来一起做设置。

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(option =>
{
option.Limits.KeepAliveTimeout = TimeSpan.FromMinutes();
option.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes();
})
.Build();

ASP.NET Core如何设置请求超时时间的更多相关文章

  1. vue 设置请求超时时间处理

    Vue.http.post('http://114.214.164.77:2222/crptorgraphy',{msg:JSON.stringify(req)},{emulateJSON:true, ...

  2. Linux下CURL设置请求超时时间

    使用CURL时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间. 连接超时时间用--connect-timeout参数来指定,数据传输的最大允许时间用-m参数来指定. 例如: cu ...

  3. AFN设置请求超时时间

    进入AFURLRequestSerialization.m 找到 - (NSMutableURLRequest *)requestWithMethod:(NSString *)method URLSt ...

  4. &lbrack;Swift&rsqb;Alamofire:设置网络请求超时时间【timeout】的两种方式

    两种方式作用相同,是同一套代码的两种表述. 第一种方式:集聚. 直接设置成员属性(全局属性),这种方法不能灵活修改网络请求超时时间timeout. 声明为成员属性: // MARK: - 设置为全局变 ...

  5. 【开源项目13】Volley框架 以及 设置request超时时间

    Volley提供了优美的框架,使android程序网络访问更容易.更快. Volley抽象实现了底层的HTTP Client库,我们不需关注HTTP Client细节,专注于写出更加漂亮.干净的RES ...

  6. 【轮询】【ajax】【js】【spring boot】ajax超时请求:前端轮询处理超时请求解决方案 &plus; spring boot服务设置接口超时时间的设置

    场景描述: ajax设置timeout在本机测试有效,但是在生产环境等外网环境无效的问题 1.ajax的timeout属性设置 前端请求超时事件[网络连接不稳定时候,就无效了] var data = ...

  7. 转 HttpClient 设置连接超时时间

    要: HttpClient 4.5版本升级后,设置超时时间的API又有新的变化,请大家关注. HttpClient升级到4.5版本后,API有很多变化,HttpClient 4之后,API一直没有太稳 ...

  8. HttpClient设置连接超时时间

    https://www.cnblogs.com/winner-0715/p/7087591.html 使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间.这两个参数很重要,目的是为 ...

  9. C&num; 的tcp Socket设置自定义超时时间

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

随机推荐

  1. HTTP Methods&colon; GET v&period;s POST

    HTTP works as a request-response protocol between a client and server. A web browser may be the clie ...

  2. EF中逆变和协变

    EF中的增删改查: 实现步骤: 1.声明一个EF的上下文. bjhksjEntities dbContext = new bjhksjEntities(); 2.声明一个实体. HKSJ_USERS ...

  3. linux tcp 好文

    http://blog.csdn.net/htttw/article/details/7521053

  4. CREATE DATABASE

    CREATE DATABASE IF NOT EXISTS `focusdata` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE `fo ...

  5. Android判断应用程序从后台回到前台

    MainActivity如下: package cc.testbackgroundtofront; import java.util.List; import android.app.Activity ...

  6. 自己动手写CPU 笔记

    自己动手写CPU 跳转至: 导航. 搜索 文件夹 1 处理器与MIPS 2 可编程逻辑器件与Verilog HDL 3 教学版OpenMIPS处理器蓝图 4 第一条指令ori 5 逻辑.移位与nop ...

  7. LeetCode-Best Time to Buy and Sell Stock III&lbrack;dp&rsqb;

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  8. Android实现图片的压缩、旋转工具类

    import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matri ...

  9. SQL Server中sys&period;syslogin中updatedate字段的浅析

    在系统视图sys.syslogins中,有createdate与updatedate两个字段,分别表示创建登录名与更新登录名的日期,如果你用updatedate的值来判断一个登录名的权限是否被修改过, ...

  10. 转 &period;NET4&period;5之初识async与await

    来自:http://www.cnblogs.com/lekko/archive/2013/03/05/2944282.html 本人是从.NET4.0刚出的时候接触的.NET环境,所以学的东西就是4. ...