今天正常上班,第一件事就是打开VS接着上周的工作,打开调试........
what?
一个不友好的提示框,大至意思吧
无法连接到已配置的开发web服务器 IIS Express ....下面还有乱码
回想上周都是好好的呀。
于是想到的第一个办法,先重启一下电脑吧。
用管理员打开命令提示行,输入以下命令添加监听地址到监听列表,不包括端口号(因为这里提示错误信息为不能绑定[::]:63100地址,所以添加地址为::,意思是添加任意ipv6地址到监听列表):
netsh http add iplisten ipaddress=::
问了一个方法之后,发现问题解决了。于时很开心的工作,但紧接着又发现一个问题,就是我本机的IIS站点通过IP无法访问,只能通过localhost访问,这样我的同事就不能访问了,实在不方便。
我又开始百度。查找了 netsh http 相关命令的介绍 ,按照操作,把上面添加的又删除了,发现问题全部都好了。合着回到了起点,之前的问题也好了。
解决方法是使用NetSH(Windows的网络配置命令行工具),修改正确的监听端口和IP地址。具体操作步骤如下:
首先打开CMD命令提示符,可以通过Win+R打开运行窗口后输入cmd,在cmd中输入命令:
netstat -ano | findstr 80
这条命令主要是用于查看80端口的监听情况,我的情况如下(由于是新服务器,只有一条记录):
这里就是问题所在,80端口只监听本地127.0.0.1的回环地址,也就是公网IP并没有被服务器列入监听(外网无法访问)!正确的应该是0.0.0.0:80,表示80端口被所有IP/网卡监听(内外网地址都可以访问):
那么接下来就要使用netsh命令进行修改了,先在cmd控制台输入:
netsh http show iplisten
先查看当前IP地址的监听情况,默认的监听列表是空白的,如果有显示出IP地址,就要检测是否设置有误。我的配置就是有问题的,不应该只侦听::的地址!
如果是专业的服务器运维人员,这边根据自己网络环境进行修正就可以。像我这种半桶水的解决方法就是删除掉所有的IP侦听,这样服务器就会默认监听所有的IP。我的情况只要删除只本地回环地址就可以了:
netsh http delete iplisten ipaddress=::
其实可以仔细回想下自己是否有运行过netsh http add iplisten命令,这就是问题的根源。删除掉其他的侦听IP后,服务器就会重新侦听所有内外网的IP,最好重启下服务器!重启后网站即可正常访问了。