0

我正在开发一个由两个元素组成的解决方案:一个发布一些 REST 服务的 Web 服务器和一个使用这些服务的移动客户端。为了实现 REST 服务,我使用了 Web API 技术。

当我在调试中启动 Web 项目时,一切正常。我可以通过指向 localhost:63954/api 来使用这些服务。一个奇怪的事实:如果我将“localhost”更改为“127.0.0.1”或机器的 LAN 地址 192.168.xxx.xxx,服务器将不再响应!

然后,当我启动在虚拟化模拟器中运行的 Windows Phone 客户端时,它无法连接到 Web 服务器!即使这两个组件在同一台机器上运行。显然,在 Windows Phone 中我不能使用“localhost”,因为手机的 localhost 就是手机本身。所以我尝试使用 192.168.xxx.xxx 地址,它是运行 Web 服务的机器的地址。但是手机模拟器无法访问webservice。

我需要在 Visual Studio 2012 中运行 Web 服务器,因为我需要对其进行调试,并使其可以从 Windows Phone Emulator 访问,但我不知道该怎么做。你能帮助我吗?任何想法?

非常感谢你,里卡多。

编辑:通过点击此处找到的链接(将IIS Express 绑定到 IP 地址)并关闭我的防火墙,我可以在 VS12 之外运行 Web 应用程序,并且可以从网络中的其他电脑访问它,也可以从 WP 访问它模拟器。这可能是一种解决方法,但我无法以这种方式在 VS 中调试 REST 服务,这并不好......

4

2 回答 2

0

Windows Phone 8 模拟器在您的网络上作为单独的机器工作,具有自己的 IP 地址和配置。因此,为了让模拟器能够访问您的服务,您需要确保您尝试访问的端口已为入站连接打开。

于 2013-04-20T15:30:46.500 回答
0

正如您提到的Windows Phone在您的客户端机器上单独运行,解决此问题的一种方法是,将您机器的IP地址绑定到Web Api,因此可以使用机器的IP地址访问Web api。您可以绑定IP使用 Microsoft Webmatrix 为项目添加地址。因此,您可以使用 IP 地址访问 Web Api。希望这会有所帮助。

于 2013-04-22T21:29:32.187 回答