2017-08-11 144 views
0

我做一个MVC 5 APP,我使用PostAsJsonAsync这样MVC调用API控制器PostAsJsonAsync从在session_start

HttpResponseMessage response = await client.PostAsJsonAsync(apiUrl + "Method/Action",param); 

调用阿比控制器我得到这个错误

[出现InvalidOperationException:异步模块或处理程序完成而异步操作仍在等待处理]

我正在做这个cal l从Global.asaxSession_Start

意向是注册每个人访问该网站。 我必须修改Session_Startasync void Session_Start

如何管理这种情况?使呼叫过程非异步?

回答

0

我看 here

并更换

public static async Task<long> Insert_SessionStart(
 
{ 
 
HttpResponseMessage response = await client.PostAsJsonAsync(apiUrl + "Method/Action", param); 
 

 
if (response.IsSuccessStatusCode) 
 
    return response.Content.ReadAsAsync<long>().Result; 
 
    
 
    }

public static long Insert_SessionStart() 
 
{ 
 
var response = client.PostAsJsonAsync(apiUrl + "Method/acti", param).Result; 
 
    if (response.IsSuccessStatusCode) 
 
    return response.Content.ReadAsAsync<long>().GetAwaiter().GetResult(); 
 
    
 
}

这样我就避免把await方法放入Session _start。