asp.NetCore非同期プログラム改造で発生した問題
4846 ワード
公衆番号でnetCoreプログラムの性能向上に関する記事を見て、非同期プログラミングを使うという考えをまとめると、async Taskやawaitキーワードをプログラムに追加し、前にファイルアップロードしたコントローラを書いたことがあり、非同期を使ったが、今回はいっそプログラムをライブラリから非同期方法に変更し、マイクロソフト関連の方法にも同様の非同期方法がある.次に出会ったいくつかの小さな問題についてお話しします
1、ToList()この非同期の方法はToListAsyncであり、using Microsoftを参照する必要がある.EntityFrameworkCore;
2、フィルターの非同期方法を書き直して、方法の中のnextは本当にどのように使うことを知らないで、知っている大侠が伝言を残して教えることができます
次に,プログラム中のredisキャッシュ操作に関する方法も改造する.
転載先:https://www.cnblogs.com/wangbg/p/10536008.html
1、ToList()この非同期の方法はToListAsyncであり、using Microsoftを参照する必要がある.EntityFrameworkCore;
2、フィルターの非同期方法を書き直して、方法の中のnextは本当にどのように使うことを知らないで、知っている大侠が伝言を残して教えることができます
///
///
///
///
public override async Task OnActionExecutionAsync(ActionExecutingContext filterContext, ActionExecutionDelegate next)
{
if (_auth.CheckLogin() == false)
{
filterContext.HttpContext.Response.Cookies.Append("wangbg_login_error", "overdue");
filterContext.Result = new RedirectResult("/Manage/Login");
return;
}
if (Ignore == true)
{
await base.OnActionExecutionAsync(filterContext, next);
return;
}
var tempUser = _auth.GetCurrentUser();
if (tempUser.IsSystem == true)
{
await base.OnActionExecutionAsync(filterContext, next);
return;
}
var request = filterContext.HttpContext.Request;
var moduleId = request.Cookies["currentmoduleid"];
if (string.IsNullOrEmpty(moduleId) == true)
{
throw new Exception(" ! , !");
}
var tempRet = await _sysRoleAuthorizeApp.ActionValidate(tempUser.SysRoleId, moduleId, request.Path);
if (tempRet == false)
{
throw new Exception(" ! , !");
}
await base.OnActionExecutionAsync(filterContext, next);
}
次に,プログラム中のredisキャッシュ操作に関する方法も改造する.
転載先:https://www.cnblogs.com/wangbg/p/10536008.html