实验环境:
windows server 2003 sp2 + IIS6.0 除了2003自动的1.1框架,没有安装任何.net框架。系统很纯净,因为是在虚拟机中做的实验。
实验步骤:
- 观察安装完IIS之后的 ”C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys“ 文件夹:
iis安装之前是什么样忘了看了,失误:)
2. 删除以c2319开头的文件,记得要先备份一下,因为下面会发生让网管们抓狂的事情。
3. 停止服务IIS Admin Service ,再启动该服务,会发现IIS启动不了了。
错误代码:-2146893818。如果google一下,根本找不到解决方法,无非是让你恢复"C:\WINDOWS\system32\inetsrv\History"文件夹下的MetaBase文件。
4. 再去查看文件夹MachineKeys时,你会发现系统又重新创建了一个相同文件名的“c2319c42033a5ca7f44e731bfd3fa2b5_33858066-43b1-4245-82d9-bd2e4ee05dcd” 文件。
5. 恢复我们备份的“c2319c42033a5ca7f44e731bfd3fa2b5_33858066-43b1-4245-82d9-bd2e4ee05dcd” 文件,再次启动IIS Admin Service,启动成功!
分析与结论:
MachineKeys文件夹作为微软加密 接口的“Key Container”,扮演着重要的角色。关于加密解密的理论知识可以参考。
至于那个神秘的“c2319c42033a5ca7f44e731bfd3fa2b5_33858066-43b1-4245-82d9-bd2e4ee05dcd” 文件,到底是不是所有的windows server 2003系统都相同呢?(估计是不同的,要不怎么叫MachineKey呢,肯定是与机器有关)在此做个备份: