我网上查的,因为我的数据库没有关闭,我查了一下,果然有活动连接,但我使用的“动软生成器”生成的工厂模式代码,里面的连接数据库的操作类我也看了,都connection.Close();,我代码也按照它的规范写的,我就不清楚到底什么地方没有connection.Close()了,我把代码贴出来给你们看下
---------------这个是查询的那个
/// <summary>
        /// 获取热点新闻(根据点击率前15条)
        /// </summary>
        /// <returns></returns>
        public DataSet NewsSelectCount()
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT TOP 15 nId=(SELECT SUM(1) FROM dbo.sz_News WHERE nId<=a.nId),nid AS oldId,");
            strSql.Append(" nTitle,nCreateTime,nForm,nAuthor,nCount,nContent");
            strSql.Append(" FROM dbo.sz_News a ORDER BY a.nCount DESC");            return DbHelperSQL.Query(strSql.ToString());
        }---------------------然后前台获取数据,我是使用jquery的ajax获取数据的,顺便问一下,这种方式好不好的?会不会对网站有什么影响?
//获取热点新闻function NewsSelectCount()
{
    var type="NewsSelectCount";
        $('#newsCount').html('<div align="center"><img src="Images/4.gif" /><font color="#006699"><br/>正在加载数据...</font></div>');
        $.ajax
        ({ 
            type: "post", 
            url: "JqueryAshx/NewsHandler.ashx",//操作NewsHandler.ashx新闻处理程序
            data: "type="+type,
            success: function(msg){
                $('#newsCount').css("display","none");
                $('#newsCount').fadeIn("slow");
                $('#newsCount').html(msg);
            }
         });
}-------------------NewsHandler.ashx中的
/// <summary>
        /// 获取热点新闻(根据点击率前15条)
        /// </summary>
        /// <returns></returns>
        public string NewsSelectCount()
        {
            int top = 15;
            DataSet ds = new DataSet();
            ds = news.NewsSelectTop(top);
            string html = "";
            if (ds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    string alt = ds.Tables[0].Rows[i]["nTitle"].ToString();
                    string title = ds.Tables[0].Rows[i]["nTitle"].ToString();
                    if (title.Length > 8)
                    {
                        title = Common.getSubString(title, 14);
                    }
                    html +=
                        "<img src='Images/ico-2.gif' />" +
                        "<a href='" + url + ds.Tables[0].Rows[i]["nId"].ToString() + ".html' title='" + alt + "' class='my' target='_blank'>" +
                        (i + 1) + "&nbsp;" + title + "</a>" +
                         "<div class='bottomcss'></div>";
                }
            }
            else
            {
                html += "<div align='center'><font color='#006699'>没有数据,请添加数据</font></div>";
            }
            return html;
        }大家给我看下,到底什么原因,对了,我也使用了伪静态技术,不知道有没有关系的,不过我刷新aspx文件和html,刷新次数多都会提示“目前访问网站的用户过多。”的。

解决方案 »

  1.   

    学习软件应用程序,最好是用服务器版的操作,不要用XP!,我极少用XP
    好似XP限制5个连接
      

  2.   

    顺便问下,jquery ajx是返回string好还是json好点?
      

  3.   

    这个是动软生成的数据库操作类
    /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataSet</returns>
            public static DataSet Query(string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                        command.Fill(ds, "ds");
                    }
                    catch (System.Data.SqlClient.SqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    finally
                    {
                        connection.Close();
                    }
                    return ds;
                }
            }
      

  4.   

    那就装Win7/Vista 。XP 这种破烂IIS 只能同时连接5个。
      

  5.   

    这是iis报的错吧,数据库链接又不占用iis,可能是网站用了ajax或类似东西,这样1,2个用户访问网站,可能会发起数个链接,从而超出iis规定的连接数(XP限制是5个还是10个,Win2003默认不限制,具体可以查看下iis的站点设置)
      

  6.   

    windowsXP都只允许同时10个连接数的在线人数。如果对象没有及时释放,
    也会出现用户过多的提示
    Windows 2003 不存在限制
    参考
      

  7.   


    难道用了ajax就会产生很多连接吗?
      

  8.   

    楼主要是用的是xp,那么可以通过修改注册表,把连接数改为40。
    再改大些就不管用了。连接数不只是客户端的个数,还包括了你的程序中是否采用了Frameset。
    如果Frmameset中包含了4个Frame那么,不修改注册表的情况下,
    连接数为3个时,就会报错的。
      

  9.   

    下载MtaEdt22.exe后可以在里面设置iis的最大连接数。
    具体用法百度上有
      

  10.   

    IIS连接不是指数据库连接.譬如你一个页面中
    引用 3个JS文件,1个css文件,10个图片,那某个用户打开这个页面时,至少要向IIS提交14个IIS连接.而IIS的连接数一般都设定有一个连接数上限.当超过这个上限,服务器就会报错.
    如果是虚拟主机,商家允许的上限就更少了.解决办法:
    1.在一个页面中尽量减少导致IIS连接的东东,多个小图片小图标可以合成一张图,然后用CSS显示大图的不同区域.
    2.优化代码,让每个连接能尽快地完成任务并断开.
      

  11.   

    换win2003试下吧,还有数据库不要用MDB,sql吧