生産中のXamarin.Formsアプリケーションがあります。テスト段階では、このような問題は発生しませんでした。しかし、Azure Mobile Centerでは、いくつかのクラッシュ問題が発生しています。例えば、1つのクラッシュの問題は、以下のように見えるXamarin.Forms System.Threading.Tasks.TaskCanceledException
タイトルセクション、それが示す年代にA task was canceled.
1 TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task)
2 TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task)
3 TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task)
4 TaskAwaiter`1[TResult].GetResult()
5 HttpClientHandler+<SendAsync>d__63.MoveNext()
6 ExceptionDispatchInfo.Throw()
...
17 RequestBuilderImplementation+<buildCancellableTaskFuncForMethod>c__AnonStoreyA`1+<buildCancellableTaskFuncForMethod>c__async9[T].MoveNext()
18 ExceptionDispatchInfo.Throw()
23 APIClient+<Portfolio>d__6.MoveNext()
24 ExceptionDispatchInfo.Throw()
29 PortfolioPage+<LoadPortfolio>d__3.MoveNext()
30 ExceptionDispatchInfo.Throw()
、System.Threading.Tasks.TaskCanceledException
私はPortfolioPageというページとLoadPortfolioという名前のメソッドを持っています。方法は、
async void LoadPortfolio()
{
try
{
APIResponse.Portfolio portfolio = await new APIClient().Portfolio(selectedDate);
MessagingCenter.Send<PortfolioPage, APIResponse.Portfolio>(this, "LoadedPortfolio", portfolio);
}
catch (ApiException e)
{
Debug.WriteLine(e.Message);
if (e.StatusCode == System.Net.HttpStatusCode.Unauthorized) UIUtil.gotoAuthenticate(this);
else
MessagingCenter.Send<PortfolioPage, APIResponse.Portfolio>(this, "LoadedPortfolio", null);
}
}
私はXamarinとC#の新機能です。このエラーログから情報を抽出する方法と、TaskCanceledExceptionの問題を解決する方法が不明です。どんな助けもありがとうございます。
ありがとうございます。
リクエストが長時間になり、モバイルサービスがタイムアウトすると、これが表示されます。たとえば、テスト用にデータベースを最初から再構築し、初期化が完了する前にデータベースにクエリを実行するように設定している場合は、よく表示されます。 –