主要效果是本机调试网站,将网站发布到某域名(如m16758r728.iok.la),可以进入VS断点,不必再用远程调试!!!
环境
VS2015
windows 10操作系统
花生壳(可以用其他内网穿透的软件代替,本文以花生壳为例)
localhost->127.0.0.1&&本机内网IP
产生现象:VS调试发布的站点,localhost可以访问,127.0.0.1和本机内网IP不能访问
产生原因:localhost由ipv6解析,而非ipv4,cmd ping localhost即可发现
解决方案有以下几种:
(1)修改localhost的本地回环,使localhost指向127.0.0.1,而不是ipv6
(2)卸载ipv6,原理同(1)
(3)本机用IIS Express发布站点,配置网站,使之可以识别127.0.0.1和本机内网IP
(4)用本机IIS发布站点,而非IIS Express,并且将项目URL改为127.0.0.1:port(类似(3),步骤少一些)
方案(1)、(2)以修改电脑配置的方式来解决问题,(3)、(4)以修改网站配置的方式来解决问题
本文采用解决方案(3)
1、以管理员身份运行VS,启动调试
2、找到运行的IIS Express,右键“显示所有应用程序”
选中网站,下面显示了配置路径,打开配置文件进行编辑
该配置文件在.sln同目录的隐藏文件夹.vs\config下,名称为applicationhost.config
修改配置文件如下:
在sites节点下添加一个site子节点,并binding localhost、127.0.0.1、本机内网IP(cmd ipconfig),端口号任意(之后需与之一致,本文中端口号设置为8081)
修改name和id,保证不重复
3、停止VS调试,右键项目设置属性
Web-服务器一栏,修改项目URL为127.0.0.1:端口号
至此,127.0.0.1、本机内网IP可以访问IIS Express发布的站点了
内网穿透,给你的内网IP指定域名
1、下载花生壳客户端,在本机安装并登陆
2、在花生壳网页端申请一个免费的域名,点击“内网穿透”一栏,进行设置
至此,通过域名m16758r728.iok.la可以访问当前本机VS调试的程序,可以打断点调试
小贴士
1、不用花生壳做内网穿透,可以用以下方式:
https://natapp.cn/
(免费隧道的域名*.natappfree.cc 被恶意举报,被腾讯封锁,将无法用于微信开发.付费隧道的域名可以使用,且尽量绑定二级域名.)
https://www.ngrok.cc/
2、如果在localhost->127.0.0.1&&本机内网IP过程中遇到其他问题,可以参考下列解决方式:
(1)cmd 以管理员身份运行
netsh http add urlacl url=http://127.0.0.1:你的端口号/ user=everyone
netsh http add urlacl url=http://本机内网IP:你的端口号/ user=everyone
(2)关闭防火墙
(3)右击入站规则->新建规则->端口->特定本地端口处输入8080->允许连接->3个选项全选->输入新规则名称->完成
3、这个问题的结论就是“你要访问你的网站,就去找你网站所在的web服务器的ip和端口”