我没有使用异步功能时出现异步错误?

时间:2016-04-27 13:35:27

标签: c# asp.net-mvc asynchronous

在确认付款后,我将此功能作为api的一部分来更新数据。 它全部工作并更新数据但无法重定向到指定的URl并抛出此错误: enter image description here

我不明白为什么我得到它,因为我没有在任何地方使用异步?帮助将不胜感激。

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;
}

2 个答案:

答案 0 :(得分:0)

您可以尝试在这些方法调用之前进行等待:

public Task<HttpResponseMessage> PaymentConfirmed

然后在方法声明中更改它:

{{1}}

构建项目并修复有错误的位置。很可能不支持异步的方法会抱怨或会出错。然后再次运行API,看看是否仍然出现相同的错误。

答案 1 :(得分:0)

用户错误!!!!!!

发现了这个问题,虽然我的发送消息返回了一个空白,但它已经嵌入其中 client.SendAsync(mailMessage, null);

删除它,一切正常