我一直在玩基於https://github.com/JeffGos/urbanairsharp創建REST包裝器。來自MVC控制器的調用方法因異步等待而掛起
public LoginResponse Login()
{
return SendRequest(new LoginRequest(new Model.Login()));
}
private static TResponse SendRequest<TResponse>(BaseRequest<TResponse> request) where TResponse : BaseResponse, new()
{
try
{
var requestTask = request.ExecuteAsync();
return requestTask.Result;
}
catch (Exception e)
{
//Log.Error(request.GetType().FullName, e);
return new TResponse()
{
Error = e.InnerException != null ? e.InnerException.Message : e.Message,
Ok = false
};
}
}
我能夠調用登錄方法從一個控制檯應用程序完全正常,但如果我把它從一個MVC控制器,它通過代碼精細步驟,但從來沒有經過線
var requestTask = request.ExecuteAsync();
我已經讀過這個主題,但不太明白我如何從一個Web應用程序使用這些方法? Login()方法不是異步的,所以我不明白爲什麼它會從我的MVC操作(也是非異步)失敗?
感謝
我相信[this](http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html)可能會有你的答案。 – StriplingWarrior