Test网站在A服务器可以正常运行,将发布文件迁移到B服务器,新建网站后,就不能正常运行了,运行网站只显示了目录文件。
Test网站在A服务器的“目录浏览”设置是禁用的,所以Test网站在B服务器一样要设置禁用。
所以在B服务器会出现报错内容:服务器被配置为不列出此目录的内容。
想要达到的效果:Test网站在B服务器设置“目录浏览”为禁用,但是不显示错误,能正常打开网站页面进行浏览。
检查问题,上网查了很多:
1、设置 <modules runAllManagedModulesForAllRequests="true" />,试过,不行。
2、configuration/system.webServer/directoryBrowse@enabled 特性被设置为 True,试过,不行。
3、重新注册4.0框架:DOS命令执行---- C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i,试过,不行。
4、检查网站里各种配置,设置,怀疑是没有设置主页或者启动页什么的,其实都没有发现什么问题,默认情况下,是不用改动网站的其他配置的。
最后看到一个文章,说检查IIS程序池,我去看了程序池匹配的.net版本,默认是2.0的!太坑了,后面,改为4.0就不报IIS错误了,但是报了一个程序dll的相关错误,
Could not load type 'System.ServiceModel.Activation.HttpModule
只要执行下面的操作,重新注册一下 asp.net 4.0:
C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -iru
网站就正常运行了。
总结:就是开始新建网站的时候,没有检查程序池匹配的.net版本,导致走了很多弯路。