首页 > 服务器 > Web服务器 > 正文

关于网站应用程序池的帐号密码更改及其影响的实例分析

2024-09-01 13:45:23
字体:
来源:转载
供稿:网友
实例场景
  • 我们有一个网站(名称为test),它使用了一个应用程序池(名称也为test)
  • 关于网站应用程序池的帐号密码更改及其影响的实例分析

  • 这个帐号当前的密码,假设为 abc 。当我设置好之后,我可以正常打开网站
  • 关于网站应用程序池的帐号密码更改及其影响的实例分析

    奇怪的是,我们会发现网站照样能打开,数据库居然也照样能访问得上。

    关于网站应用程序池的帐号密码更改及其影响的实例分析服务器,因为某种原因(例如安装补丁包),需要重新启动。或者你自己因为某个原因,需要对IIS进行重启,例如执行了下面的命令

    关于网站应用程序池的帐号密码更改及其影响的实例分析

    一般而言,503错误都是表示后台的Application Pool存在问题,我们到IIS中查看,确实发现它被停止了

    关于网站应用程序池的帐号密码更改及其影响的实例分析

    然后,你会发现网站能正常工作了

    关于网站应用程序池的帐号密码更改及其影响的实例分析

    我希望你看懂了我想要描述的一个问题:当网站的应用程序池帐号密码被修改之后,将如何影响到当前的网站。

    先将结论给大家说一下

    1. 如果当前的网站,没有被重置。我测试下来是,只要IIS没有被重启过,或者应用程序池没有被停止过,就可以继续使用。

    2. 否则,当前网站会无法正常工作,而且应用程序池再也无法启动,除非设置正确的密码。

    那么,这是为什么呢?

    1. IIS启动的时候,默认会启动所有的应用程序池,并且使用它们的标识和密码,去请求windows系统(可能是本机,也可能是AD)进行认证

    2. 只要认证通过了,那么应用程序池将启动,而且这个身份会被缓存起来。

    3. 一般的应用程序,要访问后台数据库的时候,如果选择了“集成验证(integrated security=true)”这种方式的话,那么就是使用应用程序池的这个身份。

    4. “集成验证”有时候也称为信任连接,这是什么意思呢?就是说SQL Server其实不再对帐号和密码进行验证,它“信任”windows传递过来的身份,也就是说,只要上面的第2步通过了,确实帐号是app_pool_test,那么SQL Server就认为它是app_pool_test,而不再重复验证密码。

    5. 当IIS被重启,或者应用程序池被重启,此时就需要再次验证身份。而如果此时发现密码不匹配了,就自然无法启动应用程序池,然后也自然无法启动网站,然后也不会发生访问数据库的行为。

    总结

    在做应用程序部署的时候,你会遇到很多复杂甚至棘手的情况,这篇文章就描述了其中一种常见的状况:

    应用程序池的帐号密码修改之后(其实,很多时候,作为开发人员的角度,你可能不知道密码已经被修改了),所以你可能会发现一些“诡异”的现象,例如刚刚还能正常使用的程序,突然又不能使用了。理解本文,将有助于你解释这样的状况,以及了解如何解决。

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表