vs2008与IIS 7.0使用在vista上时出现的问题及解决方法(Internet Explorer 无法显示该页面)(VS2008: IE Cannot Display Web Page)
我的系统是Vista Ultimate SP1,先安装了vs2008 ,然后再安装了IIS7.0之后就出现了一系列的问题。
问题:通过vs2008启动程序调试时报错。错误提示为:Internet Explorer 无法显示该页面
解决方法:
首先是安装一些必要的附件程序。
1.打开控制面板-程序和功能-选择打开或关闭Windows 功能
Internet 信息服务--Web管理工具--IIS6管理兼容性- 勾选IIS元数据库和IIS6配置兼容性
万维网服务--应用程序开发功能--勾选ASP.NET
这里有详细的说明:http://learn.iis.net/page.aspx/387/using-visual-studio-2008-with-iis-70/
2.这样安装配制完成后运行程序还是一样报错。并没有解决此问题。
3.后来通过不断的尝试和网上的搜索,终于找到解决方法。
提示:重新安装ASP.net2.0也无济于事。
附送两个命令。以前很少有过-u这个参数
卸载ASP.net2.0: %windir%\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe -u
重新安装ASP.net2.0: %windir%\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe -i -enable
4.方法其实非常简单。
首先:开始-运行(win+R),在此键入:c:\windows\system32\drivers\etc\hosts
然后:选择记事本或其实字本编辑器打开。打开后你会发现有这么两行代码;
127.0.0.1 localhost
::1 localhost
将第二行::1后面的localhost去掉就解决问题了。
最后是这样的:
127.0.0.1 localhost
::1
5.保存文件,重新运行VS2008调试程序。这时问题已解决。
问题分析:
问题虽然解决了,但是都不太清楚这是什么原因。 下以是对原因的分析(也是通过查询得到以下结论,如有偏差请指正)
因为::1是做为localhost的IPv6地址,在Vista系统中IPv6地址是被默认开启的。
通常系统是解决了localhost做为IPv6和IPv4。但是在ASP.NET开发WEB服务情况下,它是仅有listening是用在IPv4上。
所以我们可以通过命令来看一下效果:
运行(win+R)--键入:netstat -an
我的WEB网站自动生成的端口就是:1958
好像是因为安装完IIS7.0后Vista 的相关网络功能代替了ASP.NET的功能。所以localhost首先是按IPv6方式解析。所以无法按IPv4方式解析才导致的错误。
具体什么原因,还请了解这方面技术的朋友,多多指教。
对于以上分析如有错误 ,还请见谅。