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 - 请改用您的实际端口)
以管理员身份从命令提示符运行此命令:
netsh http add urlacl url=http://*:5555/ user="NT AUTHORITY\INTERACTIVE"
在%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)
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)
默认情况下,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运行端口.
| 归档时间: |
|
| 查看次数: |
11417 次 |
| 最近记录: |