代码改变世界

使用asp.net urlrewrite 出现 Session state can only be used when enableSessionState is set to true 错误

2009-04-01 02:06  Rainbow  阅读(825)  评论(0编辑  收藏  举报

直接进入正题了。已经凌晨了。

错误信息:Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.

在网上找了一圈,通过设置 web.config 文件多不能解决问题。我们还是在根源找问题。

就是比较将自定义的HttpHandle 继承这两个接口。IHttpHandler,IRequiresSessionState 后面一个接口就是处理session用的,前面的接口是接管HTTP请求的。

直接给代码了

public class GuildHttpHandler : IHttpHandler,IRequiresSessionState
    {
        public RequestContext RequestContext { get; private set; }

        public GuildHttpHandler(RequestContext context)
        {
            this.RequestContext = context;
        }
       
        #region IHttpHandler Members

        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
            string url = string.Format("~/Personal/Default.aspx?GuildUrl={0}", RequestContext.RouteData.Values["GuildUrl"]);
            context.Server.Execute(url);
        }

        #endregion
    }