IIS8 MVC asp.NET Session无法正常工作。获取空对象引用错误

时间:2016-03-19 00:07:15

标签: c# asp.net asp.net-mvc-4 session iis-8

无法使会话变量正常工作,我已经尝试了我可以在网上找到的所有解决方案。

在第1页,我在c#模型中调用以下内容

HttpContext.Current.Session["lol1"] = "123";

稍后我使用ajax调用在c#模型中将此会话变量返回给我,

return HttpContext.Current.Session["lol1"].ToString();

在javascript中,我在ajax成功函数中将其取出并将其放入带警报(e)的警告框中;

我得到一个空对象引用错误。好像我的变量没有保存到会话中。这一切都可以通过调试在localhost上正常工作,包括警报。

我尝试过的事情(目前设定):

-DefaultAppPool设置最大工作进程数:1

-IIS manager-> ASP-> Services->会话属性 - >启用会话状态:true

-IIS manager->会话状态 - >正在进行中

- 在我的解决方案web.config中:

<system.web>
    <sessionState mode="InProc" timeout="25"></sessionState>
</system.web>

<system.webServer>
    <modules>
      <remove name="Session" />
      <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
    </modules>
</system.webServer>

1 个答案:

答案 0 :(得分:0)

尝试在控制器中设置SessionStateBehavior。例如:

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]

如果您只需要从ReadOnly读取而不是写入以防止阻止,建议使用Session

链接到Microsoft的SessionStateBehavior enumeration

(有关ASP.NET在控制器使用可写会话时阻止的更多信息,请参阅此链接:Does Session State read/write everything when you access with DynamoDB

希望这有帮助!

此致

罗斯