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

jslywgbw  于 2022-11-19  发布在  .NET
关注(0)|答案(6)|浏览(334)

最近我在使用新的Microsoft.AspNet.Session中间件ASP.NETvNext(MVC6)时遇到了很多麻烦,
尝试激活“Microsoft. AspNet.Session.SessionMiddleware”时,无法解析类型为“Microsoft.Framework.OptionsModel.ConfigureOptions[Microsoft. AspNet. Session.SessionOptions]”的服务
发生在所有页面上,而不管会话使用。我使用的DNVM版本是Beta5 x86,项目中的所有包也都是Beta5。项目本身是尝试将ASP.NET MVC 5项目移植到MVC 6,但没有太多运气。下面是一些重要资源的链接:

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

gpnt7bae

gpnt7bae1#

尝试激活“Microsoft.AspNetCore.Session.SessionMiddleware”时,无法解析类型为“Microsoft.AspNetCore.Session.ISessionStore”的服务
如果在ASP.NET核心中收到此错误消息,则需要在Startup.cs中配置会话服务:

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

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseSession();
    app.UseMvcWithDefaultRoute();
}
4nkexdtk

4nkexdtk2#

此代码可帮助您...
启动.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();
    }

谢谢!!!

zbwhf8kr

zbwhf8kr3#

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

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

o2gm4chl4#

步骤1:安装“Microsoft.AspNetCore.Session”这个软件包。
步骤2:在启动文件的configure services函数中添加这些函数。

(1). services.AddSession();
  (2). services.AddDistributedMemoryCache();

第三步:在启动文件的Configure函数中添加“app.UseSession()”使用session函数。

f45qwnt8

f45qwnt85#

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;
});

然后

app.UseSession();

更多Read official doc

ybzsozfc

ybzsozfc6#

我正在使用.net core 5。我遇到了同样的问题
我就是这么解决的

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

我已经添加了这些,我还添加了这些,我将其添加到startup.cs类中

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
       app.UseRouting();
    }

我的问题解决了,我希望你的也解决了。

相关问题