【发布时间】:2013-04-20 09:06:02
【问题描述】:
我正在开发一个由两个元素组成的解决方案:一个发布一些 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 模拟器访问,但我不知道该怎么做。你能帮助我吗?有什么想法吗?
非常感谢, 里卡多。
编辑:通过点击此处找到的链接 (Binding IIS Express to an IP Address) 并关闭我的防火墙,我可以在 VS12 之外运行 Web 应用程序,并且可以从网络中的其他电脑访问它,也可以从 WP 模拟器访问它.这可能是一种解决方法,但我无法以这种方式在 VS 中调试 REST 服务,这并不好......
【问题讨论】:
-
为什么你的端口是 93564? TCP 不支持超过 65535 的任何内容
-
VisualStudio2012 选择了一个随机端口,我在复制端口时出错了...真正的端口是 63954。对于这个错误,我深表歉意,感谢 Filip 发现了这一点。
-
好的。可以从浏览器打开192.168.xxx.xxx地址吗?当你这样做时会发生什么?
-
不。当我这样做时,我收到一条消息,上面写着:“找不到网页”。如果我使用 127.0.0.1 而不是 localhost,我会收到相同的消息。这对我来说很奇怪......编辑:错误代码是 HTTP 400 Bad Request
-
感谢您的帮助。无论如何,它并没有带来解决方案。如果我输入 nslookup,我会得到: 名称:localhost 地址:127.0.0.1 我已经实现了跟踪器并尝试调试。但是当我尝试通过 127.0.0.1 或通过相应的 192.168.xxx.xxx 地址到达 WS 时,跟踪器不会记录任何内容。似乎请求没有到达服务器。我尝试使用 Firefox REST 插件来测试服务,我收到以下消息:错误请求 - 无效主机名 HTTP 错误 400。请求主机名无效。
标签: windows-phone-7 visual-studio-2012 asp.net-web-api iis-express lan