将在本地主机上运行的服务暴露给Android模拟器?

我通过与Android应用程序一起开发的ASP.net/Visual Studio运行服务。 当我通过VS运行服务时,可通过http://localhost:13980/而不是http://127.0.0.1:13980/ (提供了“错误请求 – 无效主机名”400错误)。 显然,我不能告诉Android应用程序在“本地主机”寻找服务,因为这将指向自己。

我明白( 根据这个页面 ),Android模拟器将10.0.2.2作为直通IP地址对待主机的127.0.0.1,所以如果我有一个本地主机,通过127.0.0.1正确公开,b)将应用程序中的目标地址从localhost:port更改为10.0.2.2:port。

我将如何去做A部分? 我正在运行Windows 8.1 Pro,Visual Studio 2012,并且正在讨论的项目是针对.NET 4.5的。

谢谢!

Solutions Collecting From Web of "将在本地主机上运行的服务暴露给Android模拟器?"

你有两个选择:

  1. 在IIS下运行Web服务而不是VS Cassini。 这样,您可以将Web服务绑定到本地网络的IP地址,例如http://10.0.2.2:8081
  2. 修改Android模拟器上的主机文件,将本地主机重定向到您的计算机的IP地址

第二个不是一个很好的解决方案。 这可能会导致与操作系统的一些冲突,我甚至不知道卡西尼甚至可以满足要求。 Visual Studio的内置Web服务器(Cassini)只能监听本地请求,所以选项(1)确实是最灵活的。 另外,因为你有W8 Pro IIS已经内置 。

IP地址10.0.2.2 IP映射到127.0.0.1 IP地址,而不是localhost

从模拟器连接到10.0.2.2 ,然后将您的站点托管在127.0.0.1而不是localhost 。 这应该工作。

改为使用IP地址10.0.2.2。 看到这个: 如何从Eclipse的Android模拟器连接到我的http:// localhost web服务器