首页 > 解决方案 > 尚未为此应用程序配置会话或请求错误

问题描述

我对 asp.net 很陌生,最近我遇到了这个异常:

System.InvalidOperationException

异常的详细信息说:

尚未为此应用程序或请求配置会话。

这是它发生的代码片段:

[HttpPost]
        public object Post([FromBody]loginCredentials value)
        {
            if (value.username.Equals("Admin")
                &&
                value.password.Equals("admin"))
            {
                HttpContext.Session.Set("userLogin", System.Text.UTF8Encoding.UTF8.GetBytes(value.username)); //This the line that throws the exception.
                return new
                {
                    account = new
                    {
                        email = value.username
                    }
                };
            }
            throw new UnauthorizedAccessException("invalid credentials");
        }

我不知道为什么会这样,也不知道这个错误实际上意味着什么。有人可以解释一下可能导致这种情况的原因吗?

标签: asp.net-mvcasp.net-web-api

解决方案


在您的 Startup.cs 中,您可能需要调用

app.UseSession 在 app.UseMvc 之前

app.UseSession();  
app.UseMvc();  

为此,您还需要确保安装了Microsoft.AspNetCore.Session nuget 包。

更新

你不需要使用 app.UseMvc(); 在 .NET Core 3.0 或更高版本中


推荐阅读