我有以下代码抛出了我需要在web.config上启用Session的错误消息,但是到目前为止我找不到任何东西,所以有人能告诉我它是如何工作的?
我试过将代码放在PageLoad的Decline中,但是服务器似乎避开了Session的指令:
public partial class Decline : DataPage
{
protected Decline() {
Session.RemoveAll();
Session.Clear();
Session.Abandon();
Response.Cookies.Remove("Accessed");
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect("~/Account/Login.aspx");
}
}
这是完整的信息:
只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的
<configuration>\<system.web>\<httpModules>
部分中
这是运行.net 4框架,来自以下答案的配置不太适合我当前的项目。因为那是提供.net mvc 2解决方案。因此,在.net 4
上有相同的功能会有所帮助<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
Session state can only be used when enableSessionState is set to true either in a configuration
此外,我已经为我的页面提供了以下行
<%@ Page Title="" Language="C#" CodeFile="Decline.aspx.cs" Inherits="Decline" enableSessionState="true" %>
如果存在与否则完全没有任何区别。也在IIS 7.5上运行
答案 0 :(得分:0)
我有同样的问题,这就是我所做的 在web.Config中添加此
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
并在您正在使用的页面中
EnableSessionState="True"
您可以尝试删除一个会话并检查它是否已被删除
Session.Remove("test");
if (Session["test"] == null)
{
//woooo it work ;
}
else
{
// what ????
}