今天发布新网站,突然发现IIS的默认文档失效了,头疼了半宿,终于发现了故障原因,顺利解决问题。
先描述一下故障现象:在IIS中建立新站点后,输入网址,不能打开网站,提示无法找到资源(图1)。但是在网址后加上默认文档default.aspx后,能打开网站,可以确认是IIS的默认文档失效造成了此问题(图2)。
图1:直接输入网址,无法打开网站。
图2:输入网址和主页全名,可以打开网站。
确认了问题,开始解决:
(1)开始以为是IIS站点设置的问题,重建站点、重设站点的各项设置、增减默认主页,都没有效果。
(2)然后上网查询相关资料,有说是wwwroot文件件隐藏会造成此问题。查看了一下文件夹属性,没有隐藏的,顺便把只读属性去掉,也没有效果。
(3)继续在网上搜,结果找遍了搜索结果也没有一个正确的解决方案,看来是不能指望有现成的案例了。
(4)查看系统日志,没有相应的错误提示,看来从这一块也没法入手了。
问题研究到这里,已经陷入了僵局,似乎没有突破口了。这时考虑故障应该还是IIS设置造成的,但具体是哪里造成的还不清楚,因为所有站点都不能打开默认主页,看起来是IIS的全局问题。暂时没有思路了,于是就逐个站点查看(服务器上开了数个站点),看是不是都有问题。检查完所有站点后,发现只有一个站点能打开默认主页。查看了一下站点配置,发现这个站点使用了ASP.NET4.0,于是怀疑是否因为服务器同时安装有ASP.NET2.0和ASP.NET4.0,造成了冲突,导致2.0的网站打不开。将站点升级到ASP.NET4.0(图3),结果成功打开了默认首页。至此问题解决。
图3:升级站点到ASP.NET4.0。(1)主目录选项卡:应用程序设置 - 应用程序池 - 改为 ASP.NET 4.0,(2)ASP.NET选项卡:ASP.NET版本 - 改为4.0.30319。