MVC call api controller PostAsJsonAsync from Session_Start



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

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

我收到此错误

[InvalidOperationException:异步模块或处理程序已完成,而异步操作仍处于挂起状态。

我正在做这个来自Global.asaxSession_Start的电话.

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

如何应对这种情况?使调用过程非异步?

我看 这里

并替换

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中。

最新更新