ASP.. NET CORE HttpContext.会话变量返回随机空值 &



我开发了ASP。. NET core MVC应用程序,我想访问这样的会话变量:

var currentProject = HttpContext.Session.GetString("CurrentProject");

如果我在我的机器上本地运行这个,currentProject永远不会为空,但是如果我在GCP CloudRun上托管这个应用程序,我不时会遇到currentProject = null的情况;这完全是随机发生的——我可以成功运行我的应用100次,然后突然有一天我连续5次得到空值,在第6次它又工作了。这种情况会不断重复。有什么想法吗,可能是什么原因?

这是我的部分配置,也许这可能会给一些想法:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSession();
builder.Services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
app.UseSession();

将此作为社区wiki发布,以帮助其他可能遇到此问题的社区成员。

@DavidG:

会话数据可能由于多种原因而消失。如果应用程序重新启动,或者如果会话过期,例如。尝试捕获会话开始/结束事件。

检查它的目的是防止页面在会话为空的情况下抛出一个丑陋的NullReferenceException。如果你检查它是否为空,你可以更新你的页面会话,或者重定向到一个登录页面,例如。

相关内容

  • 没有找到相关文章

最新更新