我想为我的MVC Controller HTTP Post方法设置请求超时。我正在使用WebListener。
我发现如果你使用的是Kestel和IIS,你可以通过在aspNetCore节点上指定requestTimeout属性来设置web.config中的请求超时。
如何使用WebListener执行相同的操作? 我试图修改ListenerSettings(见下文),但这不起作用
// Use Web listener
var builder =
new WebHostBuilder().UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup < Startup > ()
.UseWebListener(options => {
options.ListenerSettings.Authentication.AllowAnonymous = true;
options.ListenerSettings.Timeouts.EntityBody = TimeSpan.FromSeconds(1);
options.ListenerSettings.Timeouts.DrainEntityBody = TimeSpan.FromSeconds(1);
options.ListenerSettings.Timeouts.HeaderWait = TimeSpan.FromSeconds(1);
options.ListenerSettings.Timeouts.IdleConnection = TimeSpan.FromSeconds(1);
options.ListenerSettings.Timeouts.RequestQueue = TimeSpan.FromSeconds(1);
options.ListenerSettings.ThrowWriteExceptions = true;
options.ListenerSettings.Logger = logger;
});
var host = builder.Build();
host.Run();
答案 0 :(得分:0)
您应该撤消所有这些设置,因为它们不适用于控制器操作超时。没有什么可以使控制器代码特别超时。您应该将取消令牌传递给您想要取消的异步方法。