最近的项目里面用到了Wcf,客户端与服务器之间在传递DataTable(由于数据库字段不确定暂时用DataTable而不是用实体对象传递)时,发现有的DataTable可以直接传递没有问题,有的却会报错如下:接收对 http://localhost:9999/Service 的  HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志。不知道是什么原因 ?知道的请说一下,谢谢 !
wcf中有两个方法datatable method1();-----------------可以成功datatable method2();------------------失败
谁有碰到过这样的问题?

解决方案 »

  1.   

    http://topic.csdn.net/u/20090317/20/FB458DFF-A259-49F5-80EB-5730BA2FFFC4.html
      

  2.   

    可能的原因有很多 例如Datatable数据量太大、DataTable中没有任何 column 、DataTable没有设置TableName等等
    如果数据量太大建议看看
    http://www.udaparts.com/document/articles/rado.htm
      

  3.   


                DataTable redt = new DataTable();
                redt.Columns.Add("UpdateTime", typeof(string));
                redt.Columns.Add("UpdateState", typeof(string));
                redt.Columns.Add("ErrCount", typeof(string));            DataRow redr = redt.NewRow();            redr["UpdateTime"] = updateTime;
                redr["UpdateState"] = updateState;
                redr["ErrCount"] = errCount;            redt.Rows.Add(redr);            return redt;
      

  4.   

                DataTable redt = new DataTable();
                redt.Columns.Add("UpdateTime", typeof(string));
                redt.Columns.Add("UpdateState", typeof(string));
                redt.Columns.Add("ErrCount", typeof(string));            DataRow redr = redt.NewRow();            redr["UpdateTime"] = updateTime;
                redr["UpdateState"] = updateState;
                redr["ErrCount"] = errCount;            redt.Rows.Add(redr);            return redt;
      

  5.   


                DataTable redt = new DataTable();
                redt.Columns.Add("UpdateTime", typeof(string));
                redt.Columns.Add("UpdateState", typeof(string));
                redt.Columns.Add("ErrCount", typeof(string));            DataRow redr = redt.NewRow();            redr["UpdateTime"] = updateTime;
                redr["UpdateState"] = updateState;
                redr["ErrCount"] = errCount;            redt.Rows.Add(redr);            return redt;