ASP.NET MVC 6 AspNet.Session错误 - 无法解析类型服务?

Pls*_*elp 15 c# asp.net session middleware asp.net-core-mvc

好吧,最近我在使用ASP.NET vNext(MVC 6)的新Microsoft.AspNet.Session中间件时遇到了很多麻烦.我得到的错误,

尝试激活"Microsoft.AspNet.Session.SessionMiddleware"时无法解析类型'Microsoft.Framework.OptionsModel.ConfigureOptions [Microsoft.AspNet.Session.SessionOptions]的服务

无论会话使用如何,都会在所有页面上进 我正在使用的DNVM版本是Beta5 x86,项目中的所有软件包也都是Beta5.该项目本身是一个尝试将ASP.NET MVC 5项目移植到MVC 6没有太多运气.以下是可能重要的资源链接:

这似乎是我的配置问题,但我不知道该怎么办...请发送帮助Dx

Run*_*CMD 28

尝试激活"Microsoft.AspNetCore.Session.SessionMiddleware"时无法解析类型"Microsoft.AspNetCore.Session.ISessionStore"的服务

如果在ASP.NET Core中收到此错误消息,则需要在Startup.cs中配置会话服务:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
        .AddSessionStateTempDataProvider();
    services.AddSession();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseSession();
    app.UseMvcWithDefaultRoute();
}
Run Code Online (Sandbox Code Playgroud)

  • 在 2020 年 2 月尝试过这个 - 似乎您还需要在 `services.AddSession()` 之前添加 `services.AddDistributedMemoryCache()`。 (14认同)

Abd*_*inu 13

ASP.NET核心6.0

program.cs文件中添加这个

builder.Services.AddDistributedMemoryCache();

builder.Services.AddSession(options =>
{
    options.IdleTimeout = TimeSpan.FromSeconds(1800);
    options.Cookie.HttpOnly = true;
    options.Cookie.IsEssential = true;
});
Run Code Online (Sandbox Code Playgroud)

然后

app.UseSession();
Run Code Online (Sandbox Code Playgroud)

了解更多请阅读官方文档


Nit*_*pra 12

此代码可帮助您...

Startup.cs文件中

public void ConfigureServices(IServiceCollection services)
    {
        ....
        services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromMinutes(30);//We set Time here 
            options.Cookie.HttpOnly = true;
            options.Cookie.IsEssential = true;
        });
        ...
    }



public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseSession();
        app.UseMvc();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!!!


小智 5

您可以在启动时将会话中间件添加到配置方法中。

public void ConfigureServices(IServiceCollection services) {
    services.AddSession();
    services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)


小智 5

步骤1:安装“Microsoft.AspNetCore.Session”这个包。

步骤2:在启动文件的configure services函数中添加这些函数。

  (1). services.AddSession();
  (2). services.AddDistributedMemoryCache();
Run Code Online (Sandbox Code Playgroud)

步骤3:在启动文件的Configure函数中添加“app.UseSession()”使用会话函数。


Rob*_*ame 5

对于 ASP.NET 7,不再有 Startup.cs 文件,因为它与 Program.cs 文件合并。相反添加

builder.Services.AddSession();
builder.Services.AddDistributedMemoryCache();
Run Code Online (Sandbox Code Playgroud)

多于

var app = builder.Build();
Run Code Online (Sandbox Code Playgroud)

然后你可以添加

app.UseSession();
Run Code Online (Sandbox Code Playgroud)