我正在使用Azure移动应用程序快速入门ToDoList示例来开始使用跨平台应用程序。我已经设置了后端,它正在使用localhost - 我可以使用Swagger来获取它并获取帖子等正在运行。
然后我设置了客户端应用程序(Xamarin.Forms)。我在我的Android设备上运行客户端应用程序,当后端在Azure中时,所有工作都很棒,包括脱机同步元素。问题是我现在必须在本地工作,但在localhost上运行时我无法与db同步。
首先调试器给我一个“拒绝连接”错误,所以我按照here步骤和其他各种来源,包括使用我的笔记本电脑IP和设置防火墙规则,在IIS管理器中添加绑定到端口applicationhost.config,并在Constants.cs中更改ApplicationURL。
现在,我没有得到连接拒绝错误,但数据没有进入数据库,因为平板电脑上的localdb似乎正在工作 - 当我尝试与数据库同步时,它失败了。
不太熟悉网络,但重要的是要注意,当我在浏览器中使用localhost:portnum / tables / todoitem时,我会得到XML格式的结果但是当我使用192.168.0.10:portnum/tables/todoitem时我得到“不好”请求 - 无效的主机名“。
答案 0 :(得分:1)
默认情况下,您的Mobile App .NET服务器后端应用程序将在IIS Express中运行。使用在网络上的其他设备或Hyper-V中的虚拟机(如Windows Phone模拟器)中运行的客户端应用程序进行调试时,这会出现问题。 IIS Express将在localhost下托管您的服务器应用程序,这使得应用程序无法访问其他设备或虚拟机。在Windows Phone模拟器上运行的客户端应用程序对localhost具有不同的含义。 Visual Studio模拟器(在Hyper-V中运行)和Google模拟器也是如此。
将您的计算机配置为在IIS上托管您的Mobile App .NET服务器后端应用程序更简单,因为这允许您控制服务器应用程序与IP地址的绑定,而不是localhost。