当前位置: 代码迷 >> Web Service >> webService服务器有关问题
  详细解决方案

webService服务器有关问题

热度:183   发布时间:2016-05-02 02:18:21.0
webService服务器问题
用.net写了个WebService服务器,其中一个方法就是从SQL数据库获取数据返回一个DataSet,C# Winform做客户端魂环调用,调用。1秒钟调用一次,一开始没问题,调用一段时间后后服务器端报错。

System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 
System.Exception: Fill: SelectCommand.Connection 属性尚未初始化
求大神指教,是服务器哪里没配置好吗?
这是链接数据库获取DataSet的方法
 public static DataSet GetDataSet(string sqlText)
        {
            SqlConnection conn = getDefinedSQLConnection();
            try
            {
                DataSet ds = new DataSet();
                SqlConnection con = SqlDbHelper.getDefinedSQLConnection();
                SqlDataAdapter da = new SqlDataAdapter(sqlText, con);
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
------解决思路----------------------
为什么要定义两个sqlconnection呢

        public static DataSet GetDataSet(string sqlText)
        {
            try
            {
                DataSet ds = new DataSet();
                SqlConnection con = SqlDbHelper.getDefinedSQLConnection(); //日志记录下con的connectionstring有没有被赋值
                SqlDataAdapter da = new SqlDataAdapter(sqlText, con);
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

------解决思路----------------------
先不说代码.单看需求 你应该是要实现winfrom客户端实时刷新远程数据库的数据..

就这个来说 你这timer+webservice是最不好的了..

首先Service Broker+SqlDependcy称得上是绝配了.

另外使用tcp_client来做客户端接收"数据库"的信号,本地收到信号在查询 也是不错的方案..

下面我们在来说下你的代码

正如ls说的一样 每次查询开了2个连接而且只关闭了一个(哎?con.open在哪里....难道写在了getDefinedSQLConnection)

玩玩肯定会死.

然后就是所谓的错误
引用
System.Exception: Fill: SelectCommand.Connection 属性尚未初始化


这个错误似乎应是sqlText=""了..

看下是不是这个原因.(我从来没遇到过这个错,可能说的有问题..)
  相关解决方案