为什么AzureMobileClient.LoginAsync(提供者,令牌)需要这么长时间?

时间:2019-01-28 14:31:48

标签: xamarin.forms xamarin.ios azure-mobile-services

我有一个Xamarin Forms应用程序,它由PCL项目,iOS和Android组成。我已经为Google和Facebook实现了本机登录,它们可以正常工作,并且它们返回身份验证令牌。但是,一旦收到令牌,我就会致电

var user = Client.LoginAsync(Google, token);

请求通过,但有时请求可能需要15秒以上的时间!我的LoginAsync调用中有90%可能需要15秒钟以上的时间。其余的10%实际上工作很快。我尝试在iOS项目而不是PCL项目中进行调用,但是结果相同。我搜索了与AzureMobileClient相关的性能问题,但未发现任何问题。一切似乎都是正确的,因为最终该请求返回了,但是15秒钟以上的请求正在终止我的登录过程! Facebook也是如此。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

整个应用中的请求花费了很长时间。我用MobileServiceClient换成了HttpClient,此后一切都很好。我不确定MobileServiceClient会增加哪种类型的开销,但是我的应用程序从无法使用变成了快速闪电般的使用。

        var messageHandler = new NativeMessageHandler()
        {
            Timeout = new TimeSpan(0, 0, 8),
            EnableUntrustedCertificates = true,
            DisableCaching = true

        };
        client = new HttpClient(messageHandler);
        var uri = new Uri("example");
        client.BaseAddress = uri;
        client.MaxResponseContentBufferSize = 256000;
相关问题