问题描述
我有一个ASP.net Core应用程序,该应用程序设置为使用环境变量配置,我已经发布了该应用程序,并创建了一个在IIS默认网站“下方”运行的Web应用程序。 Web应用程序正在其自己的应用程序池上运行,并且LoadUserProfile设置为true,并且标识设置为ApplicationPoolIdentity。 我的问题是,一旦我更改了一个环境变量并回收了应用程序池,Web应用程序就不会获取环境变量的更改值(应该如此)。 要使环境变量被应用程序接收,我需要运行iisreset(仅从GUI管理器重新启动IIS还不够)
但是,我在另一台服务器上具有相同的设置,除了一个例外,应用程序池的标识设置为一个特定的帐户,在这种情况下,应用程序的确会在之后获取对环境变量所做的任何更改应用程序池回收。
有人遇到过同样的问题吗?您是如何解决的? 如果您在同一个IIS中运行多个网站和/或Web应用程序,则“强制”运行iisreset是不理想的,因此,实际上不是一个选择。但是如上所述,它似乎与为应用程序池设置身份有关。.但是我可能错了..任何人都有想法吗?
但是我一直在寻找解决方案。.我唯一发现的问题是github上的一个问题,该问题现在已经关闭,他们通过运行iisreset解决了这个问题。.还有网上提到的许多帖子,将LoadUserProfile设置为true用于应用程序池,也可以回收池,但是如上所述。那是行不通的。