1、问题描述:
在.net core项目中我们用的是2.1版本的。现在请求越来越多,有些处理不过来。所以我们就想,如果超过3秒还没处理完的就结束它的请求。
2、网上的方案:
在ASP.NET Core项目发布后生成的web.config文件中,加入时间限制配置 requestTimeout="00:20:00":
<?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>
但是这个操作在.net core 2.1中修改配置不起作用。具体不是到什么原因。下面是我的配置信息
当前思考的方向:
.net core2.1中是否能在每个请求到controller中,是否共享线程的?
如果的多线程能否计算该线程处理controller方法的时间 并且达到一定时间结束该线程。**如果共享的单线程**,又有什么方法能够设置controller中方法允许的最长处理时间呢?
欢迎各位发表一下意见。