vs中开发web站点使IIS Express支持局域网连接
vs中开发web站点使IIS Express支持局域网连接
在开发webapi的时候,客户端设备都会使用局域网的地址访问webapi,有时候需要调试api。这个时候就需要使用一些技巧了,这里我记录了我常用的两种方式,在局域网内调试vs中的web站点
1.修改IIS Express的applicationhost.config文件
2.附加到进程调试
两者都需要以管理员身份启动IIS
修改IIS Express的applicationhost.config文件
1.要想在局域网内调试vs中的web站点,这种方式是最简单的。先新建一个web站点,运行之后,在任务栏找到IIS
Express 的图标,点击悬着“显示所有应用程序”,可以看到这个配置的路径,点击打开。
2.找到sites节点,添加你的局域网的ip地址
site节点下的bingings(复数形式),可以绑定多个信息。红框中是我添加的,可以看到bindingInfomation=“*:53312:192.168.1.116”,这个192.168.1.116是我本机的地址,也可以修改为 * :53312: *
3.注意的是必须是调试模式、管理员身份运行。否则会出现下面的错误
4.在cmd中使用IIS Express开启所建的网站
我们将““C:\Program Files (x86)\IIS Express”(64位)或“C:\Program Files\IIS Express”(32位)”加入到系统变量,这个比较简单,忘的话百度一下就ok。将路径添加到系统变量的Path中来。
打开cmd,输入appcmd就可以看到如下提示
查看config文件的信息命令如下:
appcmd /apphostconfig:E:\XamarinForms\DebugSample\.vs\config\applicationhost.config list site
我们可以在命令提示符中,使用iisexpress开启创建的网站,在控制台中输入一下
这个站点id是2.
iisexpress /config:E:\XamarinForms\DebugSample\.vs\config\applicationhost.config /siteid:2
这个是时候打开浏览器,你会发现http://localhost:53312/ 是可以访问的,但是
http://192.168.1.116:53312/ 出现bad request 400错误无法访问。
以管理员的方式打开cmd,为非管理员帐户保留指定的URL
netsh http add urlacl url=http://*:53312/ user=everyone
记住要关闭防火墙,打开53312端口。
运行结果如图:
附加到进程调试
这种方式不太正经,不需要修改applicationhost.config文件。
附加到进程调试的好处是。在进行断点调试,需要经过项目编译成功后,启动IIS Express 打开浏览器,最后进入我们的断点,附加到进程调试后节约时间。还可以调试局域网内的web站点。
1.部署IIS站点
刚刚新建的站点DebugSample,打开IIS添加这个站点目录。部署站点就不浪费时间了,百度起码有10万篇。
2.先在iis打开这个站点,然后管理员身份打开站点debugSample。选择调试>附加到进程
这样我们就可以在vs中调试客户端的请求了,
总结
1.修改IIS Express的applicationhost.config文件2.附加到进程调试,这两种方式都需要以管理员身份启动vs。附加到进程调试的优势在于不需要等待vs编译项目成功后启动IIS express,还可以进行客户端请求的调试,但是这种方式很多地方需要注意,只有你在实际操作过程去体会了