下面是我的代码:
 public class ValidateImg : System.Web.UI.Page
    {
        /// <summary>
        /// 构造函数,产生随机数
        /// </summary>
        public ValidateImg()
        {
            char[] chars = "23456789ABbCDdEeFGgHhJKkMmNnPpQqRSsTtUuVvWwXxYyZz".ToCharArray();
            Random random = new Random();
            string validateNum = string.Empty;
            for (int i = 0; i < 4; i++)
            {
                validateNum += chars[random.Next(0, chars.Length - 1)];
            }            Session["validateNum"] = validateNum;
            CreateImg(validateNum);
           
       }
上面这段代码是产生验证码的类,我把它封装成dll并在一个webform项目中调用,设成aspx页面的后台代码,
只一行代码:<%@ Page Language="C#" AutoEventWireup="true" Inherits="KFOOData.ValidateImg" %>
但运行高度时报错session
"只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 <configuration>\<system.web>\<httpModules> 节中包括 System.Web.SessionStateMod 或自定义会话状态模块。"
但我的webconfig已设置 <pages validateRequest="false" enableSessionState="true" />
请高手指教!

解决方案 »

  1.   

    先直接<%@ Page Language="C#" AutoEventWireup="true" Inherits="KFOOData.ValidateImg" validateRequest="false" enableSessionState="true" %> 看看
      

  2.   

    试一下在page中设置enableSessionState="true"
      

  3.   

     public class ValidateImg : System.Web.UI.Page 
        { 
            ///  <summary> 
            /// 构造函数,产生随机数 
            ///  </summary> 
            public ValidateImg() 
            { 
               ...
               Session["validateNum"] = validateNum; 
                CreateImg(validateNum); 
                
           } 
    }
    如果把这里的构造函数改成Page_Load(object o ,eventarg e){}
    就运行正常,但如果像我以上那种情况,还有没有解决办法!
      

  4.   

    1楼2楼的方我都试过了,这个问题的出现可能是session还没开启,不是因为webconfig没有设置,而是因为还没有运行到启用session的代码就先开始执行了构造函数了,所以要在构造函数里面就要将session启用,估计要重写某一函数或方法,知道的高手请指教,兄弟无比感谢
      

  5.   

    我已经解决
    放到这里就搞定了
    OnPreInit
      

  6.   

      期待高手啊!!!!VIP该你们体现价值的时候到了