首先需要明確一點,netcore使用session不能直接使用,必須引用nuget包並做注冊之后才能使用。
例如下面的例子,若未注冊session服務會報
1 HttpContext.Session.Set(id, Encoding.Default.GetBytes(Guid.NewGuid().ToString())); 2 HttpContext.Session.TryGetValue(id,out var value);
於是我們在啟動程序startup中進行服務注冊。引入nuget包Microsoft.AspNetCore.Session和Microsoft.AspNetCore.Http.Extension(注:netcore3.0框架已集成了這兩個包,所以貌似不需要另外安裝)。緊接着直接安裝通用方式使用,先add再use。【注意中間鍵放置的位置】
一開始沒有注意,直接使用services.AddSession(),一運行,what fack?! 報錯?什么鬼?
大概的意思就是沒有找到DistributedCache這么個東西,經過查找,發現使用Session必須開啟緩存,services.AddDistributedMemoryCache().AddSession()。問題解決,項目成功運行。