服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - IIS - 关于网站应用程序池的帐号密码更改及其影响的实例分析

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

2021-08-03 17:08IIS教程网 IIS

这个标题看起来有点绕,但其实是一个常见的问题,而且很多朋友对此的理解都不深。我这里用一个例子来解释一下

实例场景

我们有一个网站(名称为test),它使用了一个应用程序池(名称也为test)

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

这个应用程序池所使用的用户帐号为app_pool_test

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

这个帐号当前的密码,假设为 abc 。当我设置好之后,我可以正常打开网站

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

这个演示页面的功能很简单,我是使用下面的代码去访问了一下数据库

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Web; 
  5. using System.Web.UI; 
  6. using System.Web.UI.WebControls; 
  7. using System.Data.SqlClient; 
  8. namespace WebApplication1 
  9. public partial class _default : System.Web.UI.Page 
  10. protected void Page_Load(object sender, EventArgs e) 
  11. using(var conn = new SqlConnection("server=(local)\\sqlexpress;database=northwind;integrated security=true")) 
  12. conn.Open(); 
  13. Response.Write(conn.State.ToString()); 

请注意,这里我并没有指定用户名和密码,而是使用了integrated security=true。这通常称为“信任连接”或者“集成验证”。这个问题,我下面还会解释。

大家可以看到,网站能正常工作。功能没有什么了不起的,这是一个简单的演示而已。但是下面大家思考一个问题:

假设app_pool_test 这个帐号的密码因为什么原因需要修改(这个很正常,很多公司都有密码修改策略的),那么

1.网站还是否能正常打开?

2.数据库还是否能访问?

我这里就做一个测试,我现在将帐号的密码修改掉

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

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

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

首先,这里你应该会有一个疑问:这是为什么呢?难道改了密码没有生效吗?到底什么时候会生效呢?

我们接下去做实验。假使当前这个服务器,因为某种原因(例如安装补丁包),需要重新启动。或者你自己因为某个原因,需要对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被重启,或者应用程序池被重启,此时就需要再次验证身份。而如果此时发现密码不匹配了,就自然无法启动应用程序池,然后也自然无法启动网站,然后也不会发生访问数据库的行为。

总结

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

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

延伸 · 阅读

精彩推荐
  • IIS云服务器怎么建立iis

    云服务器怎么建立iis

    云服务器 怎么建立IIS 云服务器是一种基于云计算技术的虚拟化服务器,它允许用户通过互联网访问和管理自己的服务器。而IIS(Internet Information Services)是...

    未知1352023-06-18
  • IISwindows IIS权限经典设置教程

    windows IIS权限经典设置教程

    根据最新的黑客攻击方法显示,如果在IIS的站点属性打开了“写入”权限,则被黑是轻而易举的事。 ...

    IIS教程网12452021-08-02
  • IIS让IIS支持webp格式的图片

    让IIS支持webp格式的图片

    WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自影像编码格式VP8,被认为是WebM多媒体格式的姊妹项目,是由...

    未知1722023-07-28
  • IISIIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

    IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

    本篇将针对不同服务器环境来介绍如何取消 这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执...

    服务器之家3112020-06-12
  • IISIIS6.0中配置php服务全过程解析

    IIS6.0中配置php服务全过程解析

    网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级...

    服务器之家3102020-05-14
  • IISInternet信息服务(IIS)管理器在哪里打开

    Internet信息服务(IIS)管理器在哪里打开

    有时候我们在使用电脑的时候,想打开Internet信息服务(IIS)管理器,怎么打开呢,下面来分享一下方法...

    百度经验34612020-05-10
  • IIS阿里云web服务器如何开启iis

    阿里云web服务器如何开启iis

    阿里云 是国内领先的云计算服务提供商之一,其提供的 云服务器 (ECS)是广受企业和个人用户青睐的云计算产品之一。在使用 阿里云 ECS过程中,很多用...

    未知2982023-05-10
  • IISIIS上如何添加PHP运行环境

    IIS上如何添加PHP运行环境

    本篇内容介绍了“IIS上如何添加PHP运行环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何...

    未知1232023-05-10