让 .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 中一直运行的主要内容,如果未能解决你的问题,请参考以下文章
将 asp.net core web api 部署到 IIS 7.5 时出现 500 错误
Web 应用程序问题(web.config 错误)HTTP 500.19 与 IIS7.5 和 ASP.NET v2