在将软件部署到 IIS 中时,我曾多次观察到相关的应用程序池时不时地无法重新启动,并且在事件日志中我们会看到如下错误:
应用程序池标识“AppPoolName”无效。如果在处理应用程序池的第一个请求时它仍然无效,则应用程序池将被禁用。
这种情况并不常见,但一旦发生,唯一的解决办法就是在 IIS 管理器窗口中重新应用身份密码。只要我重新应用并重新启动应用程序池,网站就会恢复。
事实:
- 该账户是密码永不过期的服务账户。
- 该帐户是 IIS 主机的本地帐户。
- 账户密码永不改变。
- 这是在 Windows Server 2003 上运行的 IIS 6
- 该软件的部署是通过 MSI 进行的,并涉及几次 IIS 重置。
- 该软件是在内部创建的,不会对 IIS 做任何花哨的事情。
您对身份信息可能如何被破坏有任何想法吗?
编辑:澄清
要清楚的是 - 此用户帐户和密码组合绝对没问题,通常可作为应用程序池的身份。只有当我们将软件更新部署到现有 IIS 应用程序中时,它才会停止工作。
- 我们的密码没有改变
- 我们的部署不会更改密码或重新配置应用程序池。
- 这种情况并不是每次都会发生,也许有1/20次。
- 如果我们在 IIS 中重新输入密码并重新启动应用程序池,一切就都正常了。
答案1
如果必须运行 IISReset,请始终运行 IISRESET /NOFORCE。
如果您没有运行 /NOFORCE,则元数据库损坏的可能性会大大增加,我猜想这可能会以上述方式表现出来。
答案2
这个答案可能会有所帮助,因为它似乎解决了您遇到的问题 - 还要确保服务帐户是 IIS_WPG 组的成员。
https://stackoverflow.com/questions/863537/asp-net-error-the-identity-of-application-pool-is-invalid