昨日突然发现调试asp.net应用程序时,IE总是显示connecting,长时间不显示页面。开始分析是什么原因,发现firefox访问此asp.net development server,也是长时间没有显示页面。是asp.net development server有什么问题了。想不出什么直接的原因,于是就在网上搜索,用一些关键字如:asp.net development server not working, asp.net development server long time no response, asp.net development server hang, 等等等等,搜到一些信息都没有帮助,有的说把IE options里reset一下就可以,试了好多方法就是没有解决。后来看到asp.net development server只能使用localhost来访问,不能从别的主机过来访问,不过此处正是本机,应该localhost没有问题的。中间还试图调整IE的zone,也没有解决。后来突然想起,试试127.0.0.1,一试,果然可以。而localhost不行,看来是localhost这个域名出了问题。ping localhost, 果然,localhost被映射成了::1, 于是找到C:\Windows\System32\drivers\etc\hosts, 发现:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
这些行都是注释的。
为什么localhost映射成了::1呢,试着写了一行127.0.0.1 localhost,重启,果然发现asp.net development server正常了。
这个与IPv6有关,于是把所有IPv6全都disable了。这下应该没有啥问题了。