2016-04-27 19 views
2

私は支払いの確認後にデータを更新するAPIの一部としてこの機能を持っています。 それはすべての作品やデータを更新しますが、指定されたURLへのリダイレクトに失敗し、このエラーがスローされます。 enter image description here非同期機能を使用していないときに非同期エラーが発生しますか?

私はどこでも非同期を使用していないとして、私はそれを取得していますなぜ私は理解していませんか?ヘルプをいただければ幸いです。あなたはこれらのメソッドの前でのawaitを入れて試すことができ

public HttpResponseMessage PaymentConfirmed(string id, string email, string status, string amount, string product) 
{ 
    if(status == "Paid") 
    { 
     var Id = id; 
     var Email = email; 

     var uid = Convert.ToInt32(Id); 
     var userbyId = RepositoryHelper.GetPersonFromId(uid); 
     if (userbyId.UserType == "Donation") 
     { 
      RepositoryHelper.UpdateDonation(userbyId, amount); 
     } 
     if (userbyId.UserType == "Sponsor") 
     { 
      var school = RepositoryHelper.GetSchoolByUser(userbyId); 
      RepositoryHelper.AddFreeUsers(school); 
     } 
     if (userbyId.UserType == "School" || userbyId.UserType == "Pupil") 
     { 
      var complete = RepositoryHelper.UpgradeToPaid(userbyId); 
     } 

     SendUserPaymentConfirmed(userbyId); 

     HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Moved); 
     response.Headers.Location = new Uri("http://url here"); 
     return response; 
    } 
    return null; 
} 
+1

を働く、その中に client.SendAsync(mailMessage, null);

を抱かた空間を返されたが、問題を発見

はあなたがタスクを返す呼び出しているこれらの方法の確認noneですか? 'RepositoryHelper.UpdateDonation'、' RepositoryHelper.AddFreeUsers'、 'RepositoryHelper.UpgradeToPaid'、' SendUserPaymentConfirmed'のように? – Igor

+0

これらのどれも返されていないことを100%確信してください – scottdavidwalker

+0

私の送信メッセージは無効になりましたが、問題が見つかりました。 "client.SendAsync(mailMessage、null);" 削除してすべて正常に動作します – scottdavidwalker

答えて

0

は次のように呼び出します。

await RepositoryHelper.UpdateDonation 
await RepositoryHelper.AddFreeUsers 
await RepositoryHelper.UpgradeToPaid 
await SendUserPaymentConfirmed 

そして、メソッド宣言でそれを変更します。

public Task<HttpResponseMessage> PaymentConfirmed 

をプロジェクトをビルドし、どこそこに修正エラーです。ほとんどの場合、非同期をサポートしないメソッドではエラーが発生するか、エラーが発生します。その後、APIを再度実行し、同じエラーが発生するかどうかを確認します。

0

ユーザーエラー!!!!!!私の送信メッセージは、それがこの、それを削除し、すべてがうまく

関連する問題