通过LAN消费Web服务

时间:2014-04-15 08:19:08

标签: web-services iis

我在本地网络上的计算机上运行了Web服务。我希望能够通过本地IP连接到它们,而不是通过localhost与它们连接 - 在这种情况下192.168.1.5。一旦我能做到这一点,我就会知道网络上的其他设备也可以使用这些Web服务(特别是我的Android手机)。

在我Visual Studio 2013的项目设置中(我正在使用IIS Express),如果我将项目网址设置为http://testdomain.com:52252并在我的主机文件中设置192.168.1.5 testdomain.com的行,那么连接到testdomain.com:52252/testservices.asmx工作得很好。但是,当我将项目网址更改为http://192.168.1.5:52252/并直接连接到192.168.1.5:52252/testservices.asmx时,它会返回Bad Request - Invalid Hostname. HTTP Error 400. The request hostname is invalid.

在本地网络上测试Web服务的有效方法是什么?我需要开发和测试Web服务并从Android设备测试它们,但我暂时不允许在实时服务器上开发/测试它们。这有什么解决方案吗?

我在线寻找解决方案,但一直找不到。我发现很难相信这个问题没有一个共同的解决方案 - 当然人们必须有办法在不托管服务器或通过localhost连接的情况下测试Web服务吗?

2 个答案:

答案 0 :(得分:0)

我真的看到有两条路线可供选择

1)将每个域路由到自己的ip

的vlan

2)创建x个虚拟机并模拟流量

答案 1 :(得分:0)

关键是编辑名为applicationhost.config的IIS Express文件。像localhost一样添加绑定,但使用您的IP地址。请注意,每个VS2012项目都有一个绑定配置,因此请将其放在您正在使用的项目中。

然后右键单击系统托盘中的IIS Express并退出。退出VS,然后使用“以管理员身份运行”打开它。应该这样做。

            <bindings>
                <binding protocol="http" bindingInformation="*:24486:localhost" />
                <binding protocol="http" bindingInformation="*:24486:192.168.4.104" />
            </bindings>