服务器上的接口和函数都是没有问题的,客户端可以从服务器上的其它函数里得到返回值,如整型的,字符型的都可以
现在客户端要从服务器上得到一个返回的datatable,服务端没错,但客户端报错了,错误提示如下:接收对 http://localhost:8000/ 的  HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志。

解决方案 »

  1.   

    很简单的问题,我也碰到过,自己解决了。
    DataTable必须设置名称。
    例如:DataTable dt = new DataTable("Table1");
    这里的“Table1”必须有,但是命名随意,这个缺少就会序列化报错,而且错误原因会不明,显示不出来。
      

  2.   

    还有一个要注意的,必须在服务接口的声明上方添加DBNull的类型说明,否则也会出问题(遇到为空列的话),例如:
        [ServiceKnownType(typeof(DBNull))]
        [ServiceContract]
        public interface IServer
        {    }
      

  3.   

    我做WebServer的时候遇到一个
    在Web服务中用DataTable未设置名称就会报这个错误,解决方法:
    DataTable dt=new DataTable();
    dt.TableName = "MyTable";就OK了
    当然也可不用Datatable而用DataSet
      

  4.   

    datatable 是。net特有的类型
    还是用对象数组把 就是实体类
      

  5.   

    顶一个,一般不用对象时,我都用DataSet还真没碰到这个,学习了!
      

  6.   

    WCF传DATATABLE的效率可怎么说呢,你序列化后看看数据包的大小就知道了,由他造成的性能差至少有1个数量级。
      

  7.   


    对象数组的方式固然好用,但是其灵活性并不如DataTable,而且也会有遇到对象数据做不到而DataTable能做到的事。