无效的HostName - 无法从Android模拟器连接IIS express

时间:2012-08-03 15:51:21

标签: java android asp.net-mvc android-emulator

我正在尝试从Android应用程序连接我本地IIS Express上托管的WCF服务。目前,我正在模拟器上测试它。

该服务的本地网址为http://locahost:40000/api/Authenticate

我知道localhost无法运行,我在代码中使用了10.0.2.2

post = new HttpPost("http://10.0.2.2:40000/api/authenticate");

但客户端执行的响应是“无效的主机名”

我尝试编辑IIS express的ApplicationHost.config并为10.0.2.2添加了一个绑定条目但是这也没有用

还有什么我遗失的吗?

4 个答案:

答案 0 :(得分:10)

我尝试了其他有用的功能,我在IIS Express applicationhost.config文件绑定部分添加了我的系统的IP地址。

<bindings>
<binding protocol="http" bindingInformation="*:40000:localhost" />
<binding protocol="http" bindingInformation="*:40000:192.168.5.118" />
</bindings>

我现在可以调用该服务

答案 1 :(得分:9)

据我了解,10.0.2.2是127.0.0.1的别名,因此请将其添加到您网站的applicationhost.config绑定中,例如

 <site name="MySite" id="1">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="{yourpath}" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:26013:localhost" />
      <binding protocol="http" bindingInformation="*:26013:127.0.0.1" />
    </bindings>
  </site>

请记住,如果您使用Visual Studio,这些天您的网站的相关applicationhost.config可能不在c:\users\...,而是位于您的根目录的.vs\config文件夹中溶液

答案 2 :(得分:-1)

  1. 什么是“端口40000”??????? 我肯定尝试较低的端口号(如32768以下的东西;))
  2. 确保您的androidmanifest.xml具有互联网权限
  3. 确保在IIS
  4. 中定义并提供“api / authenticate”
  5. 确保Windows防火墙未阻止端口40000
  6. 有用的工具包括:
    • ping(所以你可以“ping 10.0.0.2”;在OOTB Windows中可用)
    • telnet(所以你可以“telnet localhost NNN”;你必须在Windows功能中添加它)
    • Firefox和Firebug
    • 的Wireshark

答案 3 :(得分:-2)

在AndroidManifest.xml中添加Internet PermissionNetwork StateWifi 权限