Windows Server 2008 R2 IIS重装

时间:2022-10-28 00:21:01

背景描述:

在一个刚睡醒午觉后的下午,忽然收到客户反馈,说昨天开始应用特别卡,各种卡各种不好用,忽然想到上次说要优化服务器IIS配置还一直没弄,然后迷迷糊糊的就开始进行客户现场服务器IIS配置优化,涉及到客户服务器IIS根目录 applicationHost文件等的修改。

大概在下午四点多吧,忽然收到客户反馈,说应用无法打开了。赶紧远程访问,500了。进入服务器,看具体的错误,发现是IIS配置文件错误,在具体一看是下午给applicationHost.config配置的一个属性位置放错了。

于是想偷个懒,去本地测试环境找到文件,copy到客户服务器,然后文字copy一下。当时想何必这么麻烦呢,直接copy文件不就行了(绝对是大脑短路了),然后就非常happy的覆盖了文件。

重启各种服务。打开IIS,我勒个去,怎么上面的网站都没了。我勒个去,怎么网站都变成测试服务器上的了。

瞬间有种 “垂死病中惊坐起”的感觉,一下就精神了

 

问题处理:

  1. 想采取还原文件的方式,还原一下别覆盖掉的applicationHost.config文件。百度了几种方案,最后选择了一款国内的可以免费试用的软件,还原,扫描C盘,大概花费了一个多小时,给出了4W多份可还原的xml文件,然后费尽眼力,找到了大概可能是丢失的iis配置文件(只提供文件头预览,大概比对下,反正前面是一致的)。然后happy的下一步,下一步,我尼玛,到还原文件的时候它告诉我要先注册,然后就一个链接去某宝了。。。这里我不想说什么,有时候国人做事确实损的不行,通过这种方式让人花钱,即使花了也有种被欺骗的感觉,怎么说呢,就像找了个对象,各种纯情似水,最后发现妈的是原来是小姐。(原谅我不羁的比喻和形容,没想伤害谁,网上看的段子)。另外操蛋的是,用这个东西扫描一遍以后,按照以前的经验,基本别再想用其他的在还原了。。
  2. 回想了下原来的客户服务器,应该没有什么别的东西,上面就我一个应用,于是找原来的开发人员确认下,确实只有一个网站在上面,新服务器。
  3. 开始重装IIS服务器

以下是 Windows Server 2008 R2 IIS重装的正文

  1. 在 服务器管理器下,找到删除角色                                                                                                                                                                       Windows Server 2008 R2 IIS重装
  2. 打开 找到 Web服务器,把选中去掉 ,然后一路【下一步】即可完成操作,重启                                                                                                                     Windows Server 2008 R2 IIS重装
  3. 重启后,会在启动前显示Windows Update什么的。不用管,进入页面后进入服务器管理器,查看角色是不是已经清空即可
  4. 然后同步骤1图片,选择 添加角色。如果顺利,一直【下一步】即可,最后可能需要重启服务器。
  5. 在步骤4,我碰到了问题,”Web 服务器(IIS): 安装失败”                                                                                                                                           Windows Server 2008 R2 IIS重装悲催的很,一直这个错误,于是我就重复了两遍步骤4,步骤5还是不成,IIS Web安装失败。
  6. 检查了下其他的也没什么错误,google了下,有说要卸载一个功能的,如图                                                                                                                 Windows Server 2008 R2 IIS重装 就是这个功能,需要卸载掉,图是已经卸载完成的。然后重复步骤4,步骤5即可安装成功。
  7. 安装完毕后,浏览下应用目录,webconfig文件是否正常这里一定要检查一下,因为我的重装完以后多了个web-副本 .config。一位是从前发布的时候自己备份的,然后就一遍一遍的捣鼓401.14,404 aspnet iisreg -i什么的。最后发现是web.config文件里面的内容被删除掉了,用副本覆盖现有文件。终于OK了

总结:

在生产环境操作任何内容,之前千万要备份。不要以为可以万无一失。当发现有各种可挽救的途径都没有做,比如恢复到之前版本(操作系统提供的功能),外部软件恢复文件也不是万能的,像文件覆盖可能很难恢复,而且即使能恢复也要花费很长的时间。最后得到的文件可能存在乱码或其他因素不能用等等。

所以对生产环境,操作之前千万要及时备份