C# 会话变量引发nullreference异常
我有一个使用ASP MVC4的web应用程序 我将会话变量设置为C# 会话变量引发nullreference异常,c#,asp.net,asp.net-mvc-4,iis,session-variables,C#,Asp.net,Asp.net Mvc 4,Iis,Session Variables,我有一个使用ASP MVC4的web应用程序 我将会话变量设置为 protected void Session_Start() { Session["__UserLanguage"] = "EN"; } 我在我的控制器上使用它 private void AddTranslation() { string language = Request.Form["Language"]; if (language != null) { Ses
protected void Session_Start()
{
Session["__UserLanguage"] = "EN";
}
我在我的控制器上使用它
private void AddTranslation()
{
string language = Request.Form["Language"];
if (language != null)
{
Session["__UserLanguage"] = language;
}
else
{
language = Session["__UserLanguage"] as string;
}
}
但当我在IIS上发布它时,它会返回
System.NullReferenceException: Object reference not set to an instance of an object.
当我试着把它放进控制器时
Session["__UserLanguage"] = language;
为什么?:'(
编辑:事实上,在调试会话之后,我的应用程序中没有使用\u Start()。这怎么可能呢
添加后编辑2:
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="" />
这解决了我的问题!为什么不直接由visual studio添加:(添加后
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="" />
这解决了我的问题!1)该生产应用程序上是否启用了会话?2)应用程序重新启动将刷新进程内会话。您的代码必须能够处理此问题。请参阅。1)在IIS中启用了Yeap会话状态,超时时间为30分钟。2) 正常情况下,“Session_Start()”将始终在Session[“\uu UserLanguage”]中放置“EN”!关于如何使用此网站:不要在问题中添加答案,请发布自我回答。@HugoB。将-已解决-添加到磁贴不被视为良好做法-。如果你已经找到了一个解决方案,那么你可以将它作为你自己问题的答案发布,并将其标记为已接受。