我的系统部署后,运行一切正常,使用频率较高,当频繁使用几天后,会出现以下问题:Server Error in '/' Application.   _____  The resource cannot be found. Description: HTTP 404. The resource you are looking for (or one of its
dependencies) could have been removed, had its name changed, or is
temporarily unavailable.  Please review the following URL and make sure that
it is spelled correctly. Requested URL: /errorpage.aspx找不到这个页面/errorpage.aspx 属于正常,因为我没有这个文件,问题是因为系统出错了,才会转到这个页面来,我不知道这个问题出在哪里,我重新发布一下,也能恢复到正常,但用不了多久,还会这样,请各位指点,从哪几方面着手排查?

解决方案 »

  1.   

    有两种可能性:
      (1)在程序里你的数据库没有及时关闭,导致连接池过满
      (2)你的并发量太大,超出IIS允许范围.
      从你的这种情况看,1的可能性比较大
      

  2.   

    试试用Debug版本,看看能不能看出是什么错误来
      

  3.   

    有两种可能性:
      (1)在程序里你的数据库没有及时关闭,导致连接池过满
      (2)你的并发量太大,超出IIS允许范围.
      从你的这种情况看,1的可能性比较大应该是这个问题。
      

  4.   

    碰到过一次,由于页面上使用的是DataReader 两个页面上同事忘记关闭了。运行一段就出问题。
    后我再配置文件里把连接池的大小设为2在那个页面上刷新两次就出问题。
    dr关闭后正常。
      

  5.   

    并发量不大,基本上在50人左右同时使用,那很可能就是 (1)在程序里你的数据库没有及时关闭,导致连接池过满我在每个DataAccess类中都这样做的:protected SqlDataAdapter dsCommand;
    protected SqlConnection Acn;
    private SqlCommand loadCommand;
    private SqlCommand insertCommand;
    private SqlCommand updateCommand;
    private SqlCommand deleteCommand;

    #region 初始化
    public RolesDAL()
    {
       dsCommand = new SqlDataAdapter();
       try
       {
    Acn = new SqlConnection(ecode.Ferroli.SystemFramework.XMLWebConfiguration.ConnectionString);
    Acn.Open();
       }
       catch(SqlException e)
       {
    throw e;
       }
       dsCommand.TableMappings.Add("Table",RolesData.ROLES_TABLE);
    }

    public void Dispose()
    {
    Dispose(true);
    GC.SuppressFinalize(true);
    }

    protected virtual void Dispose(bool disposing)
    {
    if (!disposing)
    return;
    if (dsCommand != null)
    {
    if (dsCommand.SelectCommand != null)
    {
    if (dsCommand.SelectCommand.Connection != null)
      dsCommand.SelectCommand.Connection.Dispose();
    dsCommand.SelectCommand.Dispose();
    }

    if (dsCommand.InsertCommand != null)
    {
    if (dsCommand.InsertCommand.Connection != null)
    dsCommand.InsertCommand.Connection.Dispose();
    dsCommand.InsertCommand.Dispose();
    }

    if (dsCommand.UpdateCommand != null)
    {
    if (dsCommand.UpdateCommand.Connection != null)
    dsCommand.UpdateCommand.Connection.Dispose();
    dsCommand.UpdateCommand.Dispose();
    }

    if (dsCommand.DeleteCommand != null)
    {
    if (dsCommand.DeleteCommand.Connection != null)
    dsCommand.DeleteCommand.Connection.Dispose();
    dsCommand.DeleteCommand.Dispose();
    }
    dsCommand.Dispose();
    dsCommand = null;
    }
    }
    #endregion请问我在哪里进行修改,才能避免这个错误的发生
      

  6.   

    找不到这个页面/errorpage.aspx 属于正常?
    这很不正常你的系统框架估计不是你一个人写的 或者你还不熟悉
    你应该把你系统的出错机制搞好。。不然以后出别的错误怎么办
      

  7.   

    web.config
     <system.web>
          <customErrors 
                        mode="Off">
    看看是什么错
      

  8.   

    因为你前面用了Acn.Open();
    在用处理完后加
    Acn.Close();
    这样就行了。
      

  9.   

    我说过“找不到这个页面/errorpage.aspx 属于正常”,自己看前面
    ------------------------------
    现在我已经捕捉不到这个错误了,我已经重新发布了,得过上几天才能出现,不过我发现了这个问题:
    <add key="Ferroli.DataAccess.ConnectionString" value="server=192.168.0.31;User ID=sa;Password=;database=FerroliSPM;Connection Reset=FALSE"/>
    我没有设置连接池数,也就是说使用的默认数,请问默认的连接池数是多少,对于50人同时在线 连接池可能溢出?
      

  10.   

    晕啊,我在你代码中没看到Acn.Close();
    你关闭问题就解决了。
      

  11.   

    to liq330(泉水叮咚):我看过“垃圾回收器”的文章,有的指明不用特意去关闭 SqlConnection,能够自动回收,我也不知道这种说法是否正确?
      

  12.   

    如果要加的话,加在这里?
    protected virtual void Dispose(bool disposing)
    {
        if (!disposing)
          return;
        if (dsCommand != null)
        {
          ....
        }
        Acn.Open();//这里?
    }
      

  13.   

    to liq330(泉水叮咚):我看过“垃圾回收器”的文章,有的指明不用特意去关闭 SqlConnection,能够自动回收,我也不知道这种说法是否正确?一定要关,
      

  14.   

    我的那种应用,关闭Acn也不行,Acn不是即时打开的,是new 时打开的,我改用了这个方法:每次使用时 SqlCommand command=new SqlCommand(commandText, new SqlConnection(XMLWebConfiguration.ConnectionString));然后使用SqlDataAdapter dsCommand的update方法和fill方法,不显示的打开SqlConnection,这样也就不用显示的关闭了,不知道这样可不可以?
      

  15.   

    估计是一些资源没有释放
    比如 datareader 毋用了static 等