using System;
using System.Web;
using System.Web.UI;
using System.Collections;
using System.Configuration;
using System.Web.Security;
using Srm.Model.Authority;
/// <summary>
/// Online 的摘要说明
/// </summary>
public class Online : Page
{
    。。
    。。    /// <summary>
    /// 把已经登陆的帐号添加到Application["OnlineUser"]
    /// </summary>
    public void AddAccountToApplication(Account account)
    {
        Hashtable hash = (Hashtable)Application["OnlineUser"];  //这句报错!!!!!
        if (hash == null) hash = new Hashtable();        if (_canReLogin == "0")
            //如果不允许重复登陆,hash表个键值是Session.SessionID
            hash[Session.SessionID] = account.AccountId;
        if (_canReLogin == "1")
            //如果不允许重复登陆,hash表个键值是account.AccountId
            hash[Session.SessionID] = Session.SessionID;
        Application["OnlineUser"] = hash;
    }}

解决方案 »

  1.   

    Hashtable hash = (Hashtable)Application["OnlineUser"];  //这句报错!!!!!
            if (hash == null) hash = new Hashtable();---你的做法不对,先判断引用是否为null,然后才能进行类型转换:
    object obj = Application["OnlineUser"];  //这句报错!!!!!
            if (obj== null) HashTable hash = new Hashtable();或者使用 as :
     Hashtable hash = Application["OnlineUser"] as HashTable;
            if (hash == null) hash = new Hashtable();
      

  2.   

    class abc
    {
     public System.Web.SessionState.HttpSessionState Session;
      public System.Web.HttpResponse Response;
      public System.Web.HttpServerUtility Server;
      public System.Web.HttpRequest Request;
      public System.Web.HttpApplication application;
       
        public void abc()
        {
            System.Web.HttpApplicationState mya = HttpContext.Current.Application;
            System.Web.SessionState.HttpSessionState mys = HttpContext.Current.Session;
        .....     }
    }
      

  3.   

    与楼上两位说的没什么关系 我明明对Application["OnlineUser"] 赋值了但是 每次程序运行到这个类里都是NULL!
      

  4.   

    谢谢lys1978900(天下無雙) 要声明! System.Web.HttpApplicationState mya = HttpContext.Current.Application;
            System.Web.SessionState.HttpSessionState mys = HttpContext.Current.Session;