【问题标题】:Is Xamarin Master-Detail Template Broken When used with Azure Backing?与 Azure 支持一起使用时,Xamarin 主从模板是否损坏?
【发布时间】:2020-07-04 17:50:47
【问题描述】:

Xamarin 中的 Master-Detail 模板通常是我的许多使用 .Net Core Backing Service 的应用程序的一个很好的起点。为了审查,它在客户端中有一个依赖服务,允许在开发时模拟 Azure 支持服务或连接到真实或本地服务。

模板生成的控制变量为public static bool UseMockDataStore = true;

所有讨论的代码都可以在这里找到:https://github.com/BicycleMark/SignalRGB

我创建了一个名为 SignalRGB 的 Xamarin Master-Detail 项目并执行了以下操作:

  1. 解决方案项目结构如下:
  2. 我启动实例 one Visual Studio 2019 并运行 SignalRGB.Web

3) 记下 url: [https://localhost:44300] 4)打开另一个Visual Studio实例(2)以UseMockDataSource=false运行客户端/它显示的默认值导致客户端使用MockDataSource

5) 转到这些行并更新了客户端,以便与我的本地服务器对话,等待一个 http 请求:

 public static string AzureBackendUrl =
            //DeviceInfo.Platform == DevicePlatform.Android ? "http://10.0.2.2:5000" : "http://localhost:44300";
            DeviceInfo.Platform == DevicePlatform.Android ? "http://localhost:44300" : "http://localhost:44300";
        public static bool UseMockDataStore = false;
        public App()
        {
            InitializeComponent();
            if (UseMockDataStore)
            {
                DependencyService.Register<MockDataStore>();
            }
            else
            {
                DependencyService.Register<AzureDataStore>();
            }
            MainPage = new MainPage();
        }
  1. 从 VS Instance(2) 运行 SignalRGB.UWP,客户端应用程序挂在 GetStringAsync() 线上:

         bool IsConnected => Connectivity.NetworkAccess == NetworkAccess.Internet;
         public async Task<IEnumerable<Item>> GetItemsAsync(bool forceRefresh = false)
         {
             if (forceRefresh && IsConnected)
             {
                 var json = await client.GetStringAsync ($"api/item");
                 items = await Task.Run(() => JsonConvert.DeserializeObject<IEnumerable<Item>>(json));
             }
    
             return items;
         }
    

我尝试了其他iOS平台并得到相同的结果:

我在这里做错了什么?

【问题讨论】:

  • 您是否尝试过使用 IP 而不是 localhost?我不了解 UWP,但通常这会导致 iOS 和 Android 出现问题
  • 进入命令行:(1) ipConfig 产生 192.168.77.113 (2) ping 192.168.77.113 成功 (3) Ran Server 项目显示浏览器正确localhost:44300/api/item (4) 替换为192.168.77.113:44300/api/item浏览器返回“错误请求”
  • 您的服务器设置是否可以处理远程请求?
  • 我在本地做这一切。我在 VS 2019 工具栏中按运行按钮“IISExpress”运行 Visual Studio 的一个实例
  • 所有源代码都在这里github.com/BicycleMark/SignalRGB

标签: web-services xamarin master-detail project-template


【解决方案1】:

监督?也许在模板代码中。 44300 是端口,但请注意协议。

DeviceInfo.Platform == DevicePlatform.Android ? “https://localhost:44300”:

【讨论】:

  • 嘿帕特里克:感谢您的尝试。我现在已将您的尝试放在我尝试过但不起作用的列表中。源头就在上面。如果你把它拉下来,也许我们可以确定它是否只是我的系统......
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多