我的运行时间较长,可能需要10到20分钟,并且正在尝试让.net核心中的异步等待工作。整个过程没有问题,只是返回成功或失败代码后,即使成功执行了该代码,它也不会执行RedirectToAction并位于同一页面上。
我正在从Webforms移植它,在这里效果很好。根据一些帖子,它似乎设置正确
代码
public ActionResult Index()
{
//...
JsonClasses.AllClasses model = ac;
var str1 = GetDataRefreshAsync(ac);
return View(model);
}
public async Task<IActionResult> GetDataRefreshAsync(JsonClasses.AllClasses ac)
{
string putStr = "Put_DataRefresh";
return await MakePostApiCallAsyncF(apiServerName + putStr + "/", ac, putStr);
}
private async Task<IActionResult> MakePostApiCallAsyncF(string url, dynamic Lobject, string className)
{
try
{
string myJson = JsonConvert.SerializeObject(Lobject);
using (var client = new System.Net.Http.HttpClient())
{
client.Timeout = TimeSpan.FromMilliseconds(2000000);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Clear();
var response = await client.PostAsync(url, new System.Net.Http.StringContent(myJson, System.Text.Encoding.UTF8, "application/json"));
string resultContent = await response.Content.ReadAsStringAsync();
if (resultContent == "Failure")
{
return RedirectToAction("Index", "Step4");
}
else
{
return View();
}
}
}
catch (Exception e)
{
return View();
}
}
单步执行代码后,我没有得到任何错误。返回代码始终是“失败”(目前还可以),它会命中并完成redirectoAction行,但是它从不重定向到Step4视图,而是位于当前页面上。