如何在 asp .net core 3.1 中设置请求超时
how set the request timeout in asp .net core 3.1
- 从Visual Studioselect创建一个新项目。 Select ASP.NET 核心 3.1
- 在 IIS 中发布和托管
- 增加上传文件大小此代码:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<IISServerOptions>(options =>
{
options.MaxRequestBodySize = 314572800;
});
services.AddControllersWithViews();
}
和网络配置:
<security>
<requestFiltering>
<!-- This will handle requests up to 300MB -->
<requestLimits maxAllowedContentLength="314572800" />
</requestFiltering>
</security>
以上正确适用,但默认超时为 2 分钟
如何增加 IIS 中托管的 ASP.NET Core 3.1 应用程序的超时时间?
注:我的web.config
<aspNetCore processPath="dotnet" arguments=".\AspCoreTestFileUpload.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
对于请求超时:
不适用于进程内托管。对于进程内托管,模块等待应用程序处理请求。
我必须使用进程内托管模型
问题已解决:
在网络配置中:
<security>
<requestFiltering>
<!-- This will handle requests up to 300MB -->
<requestLimits maxAllowedContentLength="314572800" />
</requestFiltering>
</security>
并且在 asp 核心 3.1 ConfigureServices 中:
没看懂原因,这段代码解决了问题
services.Configure<FormOptions>(options =>
{
options.ValueLengthLimit = int.MaxValue;
options.MultipartBodyLengthLimit = long.MaxValue; // <-- ! long.MaxValue
options.MultipartBoundaryLengthLimit = int.MaxValue;
options.MultipartHeadersCountLimit = int.MaxValue;
options.MultipartHeadersLengthLimit = int.MaxValue;
});
- 从Visual Studioselect创建一个新项目。 Select ASP.NET 核心 3.1
- 在 IIS 中发布和托管
- 增加上传文件大小此代码:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<IISServerOptions>(options =>
{
options.MaxRequestBodySize = 314572800;
});
services.AddControllersWithViews();
}
和网络配置:
<security>
<requestFiltering>
<!-- This will handle requests up to 300MB -->
<requestLimits maxAllowedContentLength="314572800" />
</requestFiltering>
</security>
以上正确适用,但默认超时为 2 分钟
如何增加 IIS 中托管的 ASP.NET Core 3.1 应用程序的超时时间?
注:我的web.config
<aspNetCore processPath="dotnet" arguments=".\AspCoreTestFileUpload.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
对于请求超时: 不适用于进程内托管。对于进程内托管,模块等待应用程序处理请求。
我必须使用进程内托管模型
问题已解决:
在网络配置中:
<security>
<requestFiltering>
<!-- This will handle requests up to 300MB -->
<requestLimits maxAllowedContentLength="314572800" />
</requestFiltering>
</security>
并且在 asp 核心 3.1 ConfigureServices 中: 没看懂原因,这段代码解决了问题
services.Configure<FormOptions>(options =>
{
options.ValueLengthLimit = int.MaxValue;
options.MultipartBodyLengthLimit = long.MaxValue; // <-- ! long.MaxValue
options.MultipartBoundaryLengthLimit = int.MaxValue;
options.MultipartHeadersCountLimit = int.MaxValue;
options.MultipartHeadersLengthLimit = int.MaxValue;
});