刚开始显示正常,过一段时间(有时候1天,有时候几天),DataList数据就不显示了(DataList在一个ascx控件内),就是显示空白,但ascx的静态文字可以看到.每次我只能重新上传web.config文件才能让DataList的数据重新显示出来.不知道这是什么问题引起的?郁闷啊.
还有,我们是租用的国外空间.

解决方案 »

  1.   

    重新上传web.config文件 会应用程序重新启动
    所以可能是你程序的问题,你的程序占用了数据库资源或者内存资源或者其它非托管资源
    如果不及时释放,就会出现CLR或者资源占用错误
    如果这个时候你没有进行错误处理,错误会抛出
    但是如果你的错误处理不合适,或者只是捕捉了这个异常,而没有进行任何处理
    一些函数可能会返回空值
    所以应该仔细检查你的代码,尤其是错误处理部分找到了错误以后,才能知道原因
    就知道到底是占用了什么资源
      

  2.   

    “重新上传web.config文件 才能让DataList的数据重新显示出来”
    只是表面现象,其实真正原因是
    “重新启动该应用程序 才能让DataList的数据重新显示出来”
      

  3.   

    租用的国外空间?是不是编码不一致?可能有些不支持Unicode
      

  4.   

    TO: qiuji(忆秋季)
    关键是开始一段时间都是好的,过了1天或者几天以后数据显示不出来了,重启应用程序又好了,所以有点郁闷.不知道问题出在哪.
      

  5.   

    重新上传web.config文件 会应用程序重新启动
    所以可能是你程序的问题,你的程序占用了数据库资源或者内存资源或者其它非托管资源
    如果不及时释放,就会出现CLR或者资源占用错误
    如果这个时候你没有进行错误处理,错误会抛出
    但是如果你的错误处理不合适,或者只是捕捉了这个异常,而没有进行任何处理
    一些函数可能会返回空值
    所以应该仔细检查你的代码,尤其是错误处理部分找到了错误以后,才能知道原因
    就知道到底是占用了什么资源
      

  6.   

    我现在暂时把该ascx内的<%@ OutputCache Duration="3600" VaryByParam="none" VaryByControl="none" Shared="true"%>去掉了,看看是不是这里出的问题,不过我估计这里出问题的可能性不大.如果这里出问题的话,那该ascx控件内的其他静态文字也应该显示不出来的.现在先暂时去掉看看,一步步来,只是这个找问题的时间要很久.  因为相关的站点我放在我们自己的服务器上一直都没问题的.
      

  7.   

    赞同time_is_life(今夜太冷) 的说法,其它的想不出什么原因了
      

  8.   

    数据层代码:
    private const string SQL_SELECTALLBYPID_FABRICTYPE = "TypeSelectByPID";
    public IList GetFabricType(int pId)
    {
    IList fabricType = new ArrayList();
    Database db = DatabaseFactory.CreateDatabase("SinoEn");
    DBCommandWrapper dbc = db.GetStoredProcCommandWrapper(SQL_SELECTALLBYPID_FABRICTYPE);
    dbc.AddInParameter("@PID",DbType.Int32,pId);
    using(IDataReader dataReader = db.ExecuteReader(dbc))
    {
    while(dataReader.Read())
    {
    FabricTypeInfo fabricTypeInfo = new FabricTypeInfo();
    fabricTypeInfo.ID = Convert.ToInt32(dataReader["ID"]);
    fabricTypeInfo.TypeName = dataReader["TypeName"].ToString();
    fabricTypeInfo.PID = Convert.ToInt32(dataReader["PID"]);
    fabricTypeInfo.Number = dataReader["Number"].ToString();
    fabricTypeInfo.Hits = Convert.ToInt32(dataReader["Hits"]);
    fabricType.Add(fabricTypeInfo);
    }
    }
    return fabricType;
            }
    pId为0,数据库里有数据记录的.
    另外,数据存取用的是微软最新的企业应用块(7月版的应用块).