做了一个WebApi的服务,给医院的自助机还有手持PDA终端调用,PDA是安卓系统的,WebApi所谓的匿名访问、安全性问题一头雾水,摸石头过河也就跑起来了。

来到Android访问WebApi的调试,调用VS自带IISExpress时一直访问不到,只能发布到IIS当中通过日志来联调,简单一点的服务,提交若干属性的json对象还能应付。今天碰到一个复杂的业务,提交一个Master-Detail结构的复杂对象,死活就是未将对象引用设置到对象的实例,无奈只能琢磨如何断点调试IISExpress服务了。

原来通过以下步骤才可以在局域网访问到IISExpress服务的

1 右键IISExpress右下角图标,选择显示所有应用程序

2 右键任意一行,更精确一点是选中要调试的服务-名称为http://localhost:*端口的服务,下面出现配置等选项,点击配置文件的超链接进入编辑。

配置文件默认是个人的Documents\IISExpress\config\Applicationhost.config这个文件,VS调试过的所有Web网站、WebApi服务这里都有记录。

3 修改配置文件,找到对应的site name节点,在<bindings>节点添加一个子节点

譬如这样

<bindings>
<binding protocol="http" bindingInformation="*:4444:localhost" />
<binding protocol="http" bindingInformation="*:4444:192.168.0.3" />/*增加这样一行*/
</bindings>

4 关闭IISExpress,重启调试,会发现同一个webapi服务启动了两个服务,一个localhost,一个以ip命名的。再附加IISExpress进程到VS调试,样就能断点调试局域网、安卓设备等等对IISExpress的访问了。

总结,一句话,想要监听局域网内对IISExpress的访问需要修改IISExpress配置文件添加对IP和端口的监听。至于能否自动启用ip监听,这个没有研究出来。