遇到一个在Windows Server2012 R2系统,IIS服务器启动问题,无论如何尝试启动IIS,始终提示“当文件已存在时,无法创建该文件”,一个令人懵比的问题,文件已存在,哪里存在了?不知道,就只能够盲人摸象,一步步排查,开始填坑,此处以Win10作为问题复现环境

填坑记录

作死流程

系统中安装好IIS,在未做任何修改之前,IIS能够正常启动和访问,因为个人需要对C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml文件进行部分修改配置,由于涉及到系统,所有,一般在修改前会习惯性的对文件保留一个副本,于是出现如下结构目录

blog-filelist-info

意外出现

关闭IIS后,再次启动,出现如下错误:

blog-error-info

这是啥问题?于是将之前修改过的变更,进行还原,万能重启,还是不行,IIS这就崩了?心中无数头羊驼,在奔腾~,又不想重装系统,喝口热茶,缓解一下紧张气氛,接着找问题

问题排查

通过查阅网上资料可以知道,IIS正常启动依托至少两个服务,一个是W3SVC也就是World Wide Web Publishing Service,一个是WAS也就是Windows Process Activation Service,查找到这两个服务,发现当前两个服务都未能启动,先尝试W3SVC,启动提示“服务依赖或者工作组异常”,查看服务属性,其中的依赖,一个个核对

服务停止

blog-service-stop

启动提示

启动W3SVC服务出现依赖服务或组无法启动,修改之前IIS是能够正常使用的,说明组件是完整的,需要查看服务的依赖服务或者相关组是否启动

blog-service-reset

查看依赖

打开本地服务,在服务列表中找到World Wide Web Publishing Service,查看对应的属性信息,具体信息如下:

blog-service-info

发现W3SVC的依赖项其中之一是WAS,其余依赖性都已经启动,唯独WAS未启动,因而,异常问题定位到WAS服务未启动上,尝试启动,提示信息与启动IIS启动时保持一致

blog-was-reset

原因与总结

原因

将对应的服务名称和错误信息,进行浏览器搜索,得到一个解决方案,此处为传送门Windows Process Activation Service无法启动,错误183,虽然是描述较少,好在问题和本人的问题是一模一样,网友自问自答,也是很好的,在inetsrv\config\schema文件夹下,所有文件不能存在备份文件,之前为了保留原有文件,进行文件副本的保留,造成服务启动过程中,运行异常,而WAS又是W3SVC的依赖服务,故而,两个服务都无法启动运行,删除掉C:\Windows\System32\inetsrv\config\schema\IIS_schema-副本.xml文件

blog-copy-delete

依次启动WASW3SVC服务,能够正常启动

blog-service-right

再次启动IIS就能够正常使用了,免于系统的重装,当然,环境也保住了

总结

因为自己保留原有文件的处理措施,给自己带来了两个小时的排错排查,实属填坑,没有想到IIS的相关服务会出现这样的问题,同时对服务依赖的异常排查有了一个更加深入的了解,积累成为接触疑难杂症的经验

如果你也是技术爱好者,可以关注一波~~

WXGZ