我有一个在Windows Server 2016上通过IIS运行的Wep API .NET核心应用程序。
该应用程序所做的不仅仅是回复其API,因为它正在监视其他服务上的事件等。
我有3个问题:
当我通过IIS(或发布更新时)启动/重启应用程序时,在有请求到来之前,它不会执行任何操作。然后应用程序启动。有没有办法强制应用程序立即运行?
该应用程序进行了大量的后台处理,我发现有时它会停止做任何事情。它有一个定时器上的任务,无法执行,等等。如果我不断向记录器输出工作,这不会发生
当应用程序启动时,它会向日志发送很多内容,在此期间,我可以看到它启动两次!它开始显示一个值为log的页面然后再次启动。但这有点奇怪:当应用程序启动时,有一个随机的可爱名称'选择这样我们可以区分实例,在原始和第二次启动期间,它是相同的名称,因此它显示它是同一个实例,但是第二次调用init。
是否有特定的关于应用程序在IIS容器中运行的方式可以解释这些行为?
在进行更多搜索之后,建议的选项是作为服务运行,但在我的情况下不可能,所以我仍然需要使用IIS作为反向代理创建.Net Core Kestrel应用程序。
尽管下面有评论,但我仍然没有找到任何好的解决方案,而不是定期ping网站以保持活着。
答案 0 :(得分:1)
在应用程序池集"启动模式"到" AlwaysRunning"并在网站上,设置" Preload Enabled" to" true"。使用这两个设置,应用程序立即启动。
编辑:您必须进行"应用程序初始化"在IIS上启用模块
答案 1 :(得分:0)
您必须执行以下步骤: