让 .NET 5 Web API 在 IIS 中一直运行

Posted

技术标签:

【中文标题】让 .NET 5 Web API 在 IIS 中一直运行【英文标题】:Keep .NET 5 Web API running all the time in IIS 【发布时间】:2021-12-11 21:27:32 【问题描述】:

我在 IIS 10 上托管了 .Net 5 Web API。

我配置了 IIS 应用程序池和 IIS 站点,如 here 所述。

    安装服务器功能 - 应用程序初始化模块 将启动模式设置为 AlwaysRunning 将启用的预加载设置为 True 将空闲超时(分钟)设置为 0(零)

问题是 - 当我重置 IIS(iisreset) 时,应用程序没有初始化。我在日志中看到只有应用程序已关闭。

2021-10-26 16:35:16.5366|INFO|Microsoft.Hosting.Lifetime|应用程序正在关闭... 2021-10-26 16:35:16.5366|INFO|Quartz.Core.QuartzScheduler|Scheduler QuartzScheduler_$_NON_CLUSTERED 关闭。

我错过了什么?

【问题讨论】:

你设置的托管模块是什么?如果您设置了进程,它可能没用,因为应用程序正在 kestrel 上运行。 IIS 只是一个转发请求的代理服务器。 @BruceZhang hostingModel="inprocess" 【参考方案1】:

最后我发现要让网站上的“Preload”=true 起作用,您应该在网站上激活匿名身份验证

如果有人知道如何仅针对 Windows 身份验证解决此问题,请添加您的答案。

【讨论】:

以上是关于让 .NET 5 Web API 在 IIS 中一直运行的主要内容,如果未能解决你的问题,请参考以下文章

IIS 上的 .Net 5.0 Web API 部署问题

将 asp.net core web api 部署到 IIS 7.5 时出现 500 错误

如何让 .NET 4.5 网站在 IIS6 上运行?

Web 应用程序问题(web.config 错误)HTTP 500.19 与 IIS7.5 和 ASP.NET v2

在 IIS (10.0.17763.1) 上托管 .net5.0 核心 Web api 时出现问题

Asp.net web api iis使用