gra*_*der 1 asp.net asp.net-web-api asp.net-core
是否可以使用 Kestrel 设置“aspNetCore requestTimeout”值(请参阅下面的 xml).......通过“代码”?
我在 KestrelServerLimits 对象上找不到任何东西。
下面是 xml 代码.......但希望在 CODE 中做到这一点,而不是通过(发布的)xml。
<?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>
Run Code Online (Sandbox Code Playgroud)
我想下面的(“serverOptions.Limits.KeepAliveTimeout = TimeSpan.FromSeconds(5)”)......但是这并没有控制从我的邮递员测试服务器超时。
namespace MyStuff
{
using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.ConfigureKestrel(serverOptions =>
{
serverOptions.Limits.KeepAliveTimeout = TimeSpan.FromSeconds(5);
});
});
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在阅读这篇微软文章:
Kestrel 选项 Kestrel Web 服务器具有约束配置选项,这些选项在面向 Internet 的部署中特别有用。
对 KestrelServerOptions 类的 Limits 属性设置约束。Limits 属性包含 KestrelServerLimits 类的实例。
不。这个 GitHub 问题说:
没有办法强行终止 .NET 任务。这就是为什么我们不能自己阻止失控的 CPU 进程。
requestTimeoutweb.config 中的 IIS 超时将停止等待来自您的 web 应用程序的响应并向客户端返回 500 错误,但您的网络服务器 (Kestrel) 将继续处理请求。并且没有人可以中断它(只有重新启动 kestrel 进程会有所帮助),这就是为什么 kestrel 中没有这样的配置设置。
| 归档时间: |
|
| 查看次数: |
3506 次 |
| 最近记录: |