c# - ASP.NET core中的kestrel服务器可以在启动时配置空闲超时吗

标签 c# asp.net-core kestrel

我正在使用 HostedService里面 ASP.NET core web api将部署在本地 IIS 实例中( .NET Core 2.2) 。我需要确保空闲超时设置为零,以确保后台服务持续运行,我相信这可以通过在应用程序上设置空闲超时来完成但是,这需要 IIS 管理员在设置时执行此操作,因此我想知道是否有一种方法可以在首次在 CreateWebHostBuilder() 方法中配置 kestrel 时将其配置为零空闲超时程序类。

这可能吗?

最佳答案

当您使用 IIS 作为 ASP.NET Core 应用程序的反向代理时,IIS 会启动该进程,并且应用程序池上的空闲超时将决定何时关闭该进程。 IIS 知道没有事件请求,它会直接终止该进程,而不询问该进程的权限。所以你的应用程序无法阻止这种情况。 (您必须注意,如果您在应用程序中运行任何后台作业 - IIS 不知道这些作业,并且可能会在运行过程中终止您的应用程序)

如果您在没有 IIS 的情况下运行,它根本不会自动关闭,因为关闭意味着没有任何东西再监听新连接。这就是使用 IIS 的好处:如果出现灾难性故障,它可以重新启动您的应用程序。

因此,如果您计划将应用程序保留在 IIS 后面,并且希望它永远不会关闭,那么您将必须更改应用程序池的设置。

关于c# - ASP.NET core中的kestrel服务器可以在启动时配置空闲超时吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57893159/

相关文章:

entity-framework - 运行 dotnet tool restore 以使 dotnet-ef 命令可用

asp.net-mvc - Blazor WASM 页面路由

c# - 缺少字段异常 : Field not found: 'Microsoft.Net.Http.Headers.HeaderNames.Authorization'

.net - IIS 日志失败 : Microsoft. AspNetCore.Server.Kestrel[13] JwtBearerOptions

security - 用于 asp.net 核心应用程序生产的红隼准备好了吗?

c# - 考虑到有效数字的数量,如何找到浮点值的最小有效步长?

c# - WPF:自定义控件中的多个内容呈现器?

c# - C# 中的非线性回归

c# - HTML敏捷包 : Replacing content in a "mixed-type" node

docker - 无法在指定端口上访问 ASP.NET Core + Docker