You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求处理遇未处理异常:Session未配置及ISessionStore解析失败

解决Session配置异常:Unable to resolve service for type 'Microsoft.AspNetCore.Session.ISessionStore'

这个异常是因为你的ASP.NET Core应用未正确注册Session服务或启用Session中间件导致的,按以下步骤修复:

1. 注册Session服务

在Program.cs(.NET 6+)或Startup.cs(.NET 5及更早版本)中,先添加Session服务:

.NET 6+ 示例(Program.cs)

var builder = WebApplication.CreateBuilder(args);

// 先添加核心服务(比如控制器、视图等)
builder.Services.AddControllersWithViews();

// 注册Session服务,可按需配置参数
builder.Services.AddSession(options =>
{
    // 设置Session闲置过期时间
    options.IdleTimeout = TimeSpan.FromMinutes(30);
    // 配置Session Cookie属性
    options.Cookie.HttpOnly = true;
    options.Cookie.IsEssential = true;
});

.NET 5及更早示例(Startup.cs)

在ConfigureServices方法中添加:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    // 注册Session服务
    services.AddSession(options =>
    {
        options.IdleTimeout = TimeSpan.FromMinutes(30);
        options.Cookie.HttpOnly = true;
        options.Cookie.IsEssential = true;
    });
}

2. 启用Session中间件

Session中间件的顺序很关键,必须放在路由中间件之后、授权中间件之前:

.NET 6+ 示例(Program.cs)

var app = builder.Build();

// 其他管道配置(比如静态文件、Https重定向等)
app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

// 启用Session,位置不能错
app.UseSession();

app.UseAuthorization();

// 路由映射
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

.NET 5及更早示例(Startup.cs)

在Configure方法中添加:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 其他中间件配置(异常处理、静态文件等)
    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    // 启用Session
    app.UseSession();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

关键注意事项

  • 必须先注册Session服务(AddSession),再启用中间件(UseSession),顺序颠倒会导致异常。
  • 如果需要在视图中使用Session,确保已启用相关服务(比如AddControllersWithViews包含了视图所需的Session支持)。

内容的提问来源于stack exchange,提问作者Soudha A.M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:54:57