ASP.NET MVC Session 失效错误排查
开发环境:VS2017
框 架:ASP.NET MVC5
错误情况:
使用Session出现失效的情况,在两个Action里面Session无法正常传递数值,比如:
public ActionResult A() { Session["a"] = 1; }
赋值完毕后,在同一个Controllers 里面的不同 Action中调用Session,会出现:“System.NullReferenceException:未将对象引用设置到对象实例”的错误。在百度里面搜索,没有很好的解决方案,也有提到这个问题的,但是没有解决。
解决方案:
经过查询Session的具体配置格式如下:
<sessionState mode="Off|InProc|StateServer|SQLServer" cookieless="true|false" timeout="number of minutes" stateConnectionString="tcpip=server:port" sqlConnectionString="sql connection string" stateNetworkTimeout="number of seconds"/>
特别注意cookieless="true",不要漏也不要用false。原因在于下面的用法:
cookieless Specifies whether sessions without cookies should be used to identify client sessions.
true Indicates that sessions without cookies should be used.
false Indicates that sessions without cookies should not be used. The default is false.
设置为 true 就正常了,为了更多的兄弟少走弯路,留下一篇吧。