解决方案 »

  1.   

    从错误提示看:你在InboundUpgrade_HandleUpgrade.ShowUpgradeInfo中调用了:session.GetObjectByKey
    而这时候session中还在执行上一次的查询动作。你的Session实例是全局共享的?
      

  2.   


    是的啊 写在Global 中的 Application_Start方法中初始化的 大神告诉我 这个应该怎么解决啊, 我对xpo不熟悉啊
      

  3.   


    void Application_Start(object sender, EventArgs e)
        {
            string complain = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Complain"].ConnectionString;
            string crm = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["CRM"].ConnectionString;
            Connection.InitializeSession(complain, crm);
    }
     public static void InitializeSession(string strConnComplain, string strConnCRM)
        {
            Session_Complain = new Session();
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = strConnComplain;
            Session_Complain.Connection = conn;
            Session_Complain.AutoCreateOption = DevExpress.Xpo.DB.AutoCreateOption.SchemaOnly;
            Session_CRM = new Session();
            SqlConnection connCRM = new SqlConnection();
            connCRM.ConnectionString = strConnCRM;
            Session_CRM.Connection = connCRM;
            Session_CRM.AutoCreateOption = DevExpress.Xpo.DB.AutoCreateOption.None;
            Session_CRM.LockingOption = LockingOption.None;
            Session_CRM.OptimisticLockingReadBehavior = OptimisticLockingReadBehavior.Ignore;
            Session.DefaultSession.Connection = Session_Complain.Connection;
            Session.DefaultSession.LockingOption = LockingOption.None;
            Session.DefaultSession.OptimisticLockingReadBehavior = OptimisticLockingReadBehavior.Ignore;
            //SqlExcute.connectionString = strConnCRM;
            //SqlExcuteCampaign.connectionString = strConnComplain;
        }
      

  4.   

    不要用全局变量,每次用到再创建:
    using(Session session = new Session()) {
      ... ...
    }