ASP.asp.net MVC 6 asp.net.会话错误-无法解析服务类型

本文关键字:asp net 类型 服务 错误 MVC 会话 ASP | 更新日期: 2023-09-27 18:07:00

好吧,最近我在使用新的microsoft . asp.net . session中间件时遇到了很多麻烦。. NET vNext (MVC 6).我得到的错误,

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

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

  • Project.json
  • Startup.cs

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

ASP.asp.net MVC 6 asp.net.会话错误-无法解析服务类型

无法解析类型为"Microsoft.AspNetCore.Session"的服务。试图激活'Microsoft.AspNetCore.Session.SessionMiddleware'

如果你在ASP. js中得到这个错误信息。. 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();
}

这段代码帮助你…

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

谢谢! !

NET CORE 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();
阅读官方文档

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

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

第一步:安装" microsoft . aspnetcore . session ";这个包。

步骤2:在启动文件的配置服务功能中增加这些功能。

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

步骤3:添加"app. usessession ()"

. NET 7中不再有Startup.cs文件,因为它与Program.cs文件合并了。而不是添加

builder.Services.AddSession();
builder.Services.AddDistributedMemoryCache();
上面的

var app = builder.Build();

然后添加

app.UseSession();

我正在使用。net core 5。我也遇到了同样的问题

这是我如何解决它

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

我已经添加了这些,我也添加了这些,我将它添加到startup.cs类

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

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

program.cs文件中的app.usesession();我删除了你的方法,它是固定的