2017-02-16 198 views
1

asp.net核心「爲的Isession無服務」來使用會話我按照官方網站的文檔來配置會話狀態 這裏是我的startup.cs無法在註冊

public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddDistributedMemoryCache(); 
     services.AddSession(options => 
     { 
      options.IdleTimeout = TimeSpan.FromDays(10); 
      options.CookieHttpOnly = true; 
     }); 
     services.AddMvc(); 
    } 

,這是配置:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     app.UseSession(); 
     app.UseStaticFiles(); 
     app.UseDeveloperExceptionPage(); 
     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 
    } 

但是我得到試圖注入ISession到的意見時,這個錯誤

InvalidOperationException:未註冊類型爲'Microsoft.AspNetCore.Http.ISession'的服務。

在意見中的要求我也添加視圖代碼:

@inject ISession Session 

沒什麼特別的。

+0

請添加您的視圖代碼。 – Ahmar

+0

@ahmar添加了視圖代碼,我通過任何方式使用Context Property解決了問題。但仍然想知道如何手動注入它。 – SHM

回答

0

嘗試使用IHttpContextAccessor

@inject Microsoft​.AspNetCore​.Http.IHttpContextAccessor HttpContextAccessor 

@if(HttpContextAccessor.HttpContext.Session ...) 
+0

感謝您的迴應,但沒有奏效。現在爲IHttpContextAccessor獲取相同的錯誤。 – SHM