我无法将 localhost 与 xamarin.android 应用程序一起使用。 我已经在 Chrome 浏览器上执行了 Web 项目和服务项目(不是移动应用程序)。
显示的端口号我尝试通过分别附加 10.0.2.2: 和 10.0.3.2: 在 Android Studio 模拟器和 Genymotion 模拟器中浏览,我得到结果 Bad Request-Invalid Hostname。即使我已经尝试过Service project port number,两者都不起作用。
Web 项目:使用 Visual Studio 2017 的 ASP.NET 项目和在同一解决方案中拥有服务项目。
打开您的解决方案文件夹。您可能在 1 个文件夹中有多个项目,您不需要项目的文件夹,而是根文件夹。里面有
.vs/config/applicationhost.config
文件,打开它。
find
<sites>
在里面你会有你正在运行的网站,如果你在一个解决方案中切换启动项目,可能会有几个。当您右键单击它的图标时,该名称将与 IIS 在任务栏中显示的名称相对应。例如,标签可以是<site name="ServerApp" id="2">
。
现在你需要添加一行来绑定外部连接到你的机器ip,例如
<site name="ServerApp" id="2">
...
<bindings>
...
<binding protocol="http" bindingInformation="*:60424:127.0.0.1" />
</bindings>
</site>
设置适当的端口号和协议,这里重要的是将它们映射到
127.0.0.1
,而不是“本地主机”,然后它们将可通过10.0.2.2:60424
用于Android模拟器(端口号60424仅来自上面的示例,使用你的)
您可以使用我们的免费扩展 Conveyor https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
如果Conveyor给你的IP不能用,换成10.0.2.2就行了。使用 Conveyor 解决了需要使 IIS Express 绑定到其他主机名的问题。它还具有其他一些功能。
对最佳答案的大喊,因为它让我走上了正确的轨道。在我的配置中,我当然需要在解决方案配置文件中将绑定更改为
127.0.0.1
而不是localhost
。
由于我使用的是 Rider,配置文件位于不同的位置。检查一下:
在运行/调试配置下,单击(默认选中)
open in editor
旁边的链接Generate applicationhost.config
。这将打开配置文件进行编辑。
除了上述之外,我还必须更新同一项目的
applicationUrl
文件中的launchsettings.json
属性以使用环回IP而不是localhost
:
重启服务(以及之后的客户端)应该是不言而喻的,但永远不能太小心。