Android Emulator环回到IIS Express不起作用,但可以与Cassini一起使用

ahs*_*ele 13 cassini loopback visual-studio android-emulator iis-express

我试图将在本地计算机上运行在Android模拟器中的Android应用程序中的数据发布到在本地计算机上运行的IIS Express下运行的Web应用程序.不幸的是,当我从模拟器发布到10.0.2.2时,我收到一条Host Not Found错误消息.

如果我将Web应用程序配置为在ASP.NET Dev Server(Cassini)而不是IIS Express下运行,则Android应用程序可以发布没有问题.IIS Express缺少哪些配置阻止它使用Android模拟器的环回?

Edw*_*rey 18

授予自己绑定到localhost以外的网络适配器的权限,并将IIS express配置为绑定到所有适配器.

然后,IIS Express将通过10.0.2.2接受来自Android模拟器的连接.如果将规则添加到防火墙,则还可以将IIS Express公开给网络,这会降低安全性,但对测试物理设备很有用.

步骤详细信息:(他们假设端口号为5555 - 请改用您的实际端口)

  1. 以管理员身份从命令提示符运行此命令:

    netsh http add urlacl url=http://*:5555/ user="NT AUTHORITY\INTERACTIVE"

  2. %USERPROFILE%\ Documents\IISExpress\config\applicationhost.config中,用您的站点替换您的localhost绑定bindingInformation="*:5555:*".结果应如下所示:

    <site name="..." id="...">
        <!-- application settings omitted for brevity -->
        <bindings>
            <binding protocol="http" bindingInformation="*:5555:*" />
        </bindings>
    </site>
Run Code Online (Sandbox Code Playgroud)

  • 在Visual Studio 2015和更新版本中,`applicationhost.config`文件不再位于`%USERPROFILE%`目录中,而是位于%PROJECTDIR%\.VS\config\dir中. (8认同)

kum*_* DK 12

将以下行添加到IIs配置文件(例如:c:\ Users [YourName]\Documents\IISExpress\config\applicationhost.config)如果需要,请更改端口8085.

<binding protocol="http" bindingInformation="*:8085:127.0.0.1" />
Run Code Online (Sandbox Code Playgroud)

所以你的配置文件最终会有这样的东西

<bindings>
<binding protocol="http" bindingInformation="*:4396:localhost" />     // the existing one
<binding protocol="http" bindingInformation="*:8085:127.0.0.1" />     // new line
</bindings>
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过拨打8085端口从远程呼叫您的Web服务

ex from android emu.
new HttpPost("http://10.0.2.2:8085");
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说是最好的解决方案.不过我必须提供我的实际IP地址(来自你的例子:10.0.2.2)而不是本地的looop (2认同)

Fam*_*mmy 7

默认情况下,IIS Express仅接受来自localhost的连接.要启用远程设备的连接(以及仿真器计数),请使用此处的说明.

简而言之:

netsh http add urlacl url=http://[machinename]:[port]/ user=everyone
netsh http delete urlacl url=http://[machinename]:[port]/
Run Code Online (Sandbox Code Playgroud)

替换[machinename][port]使用您的计算机名称(或非本地IP)和IIS Express运行端口.

另外,看到这个问题,这一个.