2017-08-11 177 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。