IIS “applicationhost.config 无法写入配置文件” 问题解决

前几天在给客户更换门户网站 SSL 证书的时候,碰到一个 IIS 的问题,就是在进行网站 https 证书绑定的时候,出现 “applicationhost.config 无法写入配置文件” 的错误,导致新的证书无法绑定。如图:

file

图是从网上找的,当时忘记截图了。

从网上找了很多资料,有说是文件被占用,需要停掉 IIS 服务进行修改的;又说需要通过还原历史配置来进行恢复的;也有说先重命名,停掉占用进程后再修改的,基本都是这几种解决办法。首先停掉 IIS 的方法试过了,没用;还原配置文件,还原过最近的配置,问题依旧,估计是较早就出现问题了;重命名,一切顺利,没有占用进程,但问题依旧。

尝试过上面几种办法无效后,我感觉,应该是有人手动改了 applicationhost.config 文件内容或权限,导致系统无法识别和写入,能否通过系统自带的编辑工具,强制进行更新呢?

通过研究(是的,之前很少用 IIS,属于 I盲),我在服务器管理处找到了 配置管理器,通过配置管理器,可以方便的在图形界面进行配置更改,如图:

file

file

只需要在配置管理器里,对相关配置进行修改,IIS 就会对相关文件进行更新。我试了下,在 system.applicationHost/configHistory 里面修改了最大记录数,然后保存。回到网站绑定界面,重新绑定 https 证书,发现就能重新绑定了。

通过这次探索,感觉 IIS 其实还是挺好用的,但是感觉功能界面太多,有点眼花缭乱,权限控制及配置修改,没有直接修改配置文件来得方便。并且,这么复杂的图形界面,需要消耗的资源也不少吧。但是如果去掉图形化配置,IIS 的优势也将不复存在了……