6

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

服务的本地 URL 是 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

5 回答 5

10

我尝试了其他可行的方法,我在 IIS Express applicationhost.config 文件绑定部分中添加了系统的 IP 地址。

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

我现在可以调用服务了

于 2012-08-03T17:45:42.037 回答
10

据我了解,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

于 2016-07-12T13:31:43.653 回答
0

Visual Studio 2022上的.NetCore项目中,

我编辑了launchSettings.json文件,在 iisSettings > applicationUrl 下,我将 url 设置为127.0.0.1而不是localhost,类似这样。

"iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://127.0.0.1:59109",
      "sslPort": 0
    }
  }

在颤振应用程序中,网址是10.0.2.2:59109

于 2022-02-02T08:26:08.680 回答
-2

在 AndroidManifest.xml 中添加Internet PermissionNetwork StateWifi Permission

于 2012-08-03T16:12:51.643 回答
-3
  1. “端口 40000”是怎么回事??????
    肯定会尝试使用较低的端口号(例如低于 32768 的端口号;))
  2. 确保您的 androidmanifest.xml 具有 Internet 权限
  3. 确保“api/authenticate”在 IIS 中已定义并可用
  4. 确保 Windows 防火墙没有阻止端口 40000
  5. 有用的工具包括:
    • ping(因此您可以“ping 10.0.0.2”;在 OOTB Windows 中可用)
    • telnet(因此您可以“telnet localhost NNN”;您必须在 Windows 功能中添加它)
    • 火狐和萤火虫
    • 线鲨
于 2012-08-03T16:27:31.497 回答