WCF传递datatable的问题

ahljxwy 2011-08-26 11:23:15
服务器上的接口和函数都是没有问题的,客户端可以从服务器上的其它函数里得到返回值,如整型的,字符型的都可以
现在客户端要从服务器上得到一个返回的datatable,服务端没错,但客户端报错了,错误提示如下:

接收对 http://localhost:8000/ 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志。



...全文
560 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiao910527 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

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

对象数组的方式固然好用,但是其灵活性并不如DataTable,而且也会有遇到对象数据做不到而DataTable能做到的事。
ligangliyan 2011-10-10
  • 打赏
  • 举报
回复
谢谢各位大虾 学到啦
窗户纸 2011-08-26
  • 打赏
  • 举报
回复
WCF传DATATABLE的效率可怎么说呢,你序列化后看看数据包的大小就知道了,由他造成的性能差至少有1个数量级。
ahljxwy 2011-08-26
  • 打赏
  • 举报
回复
谢谢各位,真的是加个名称就可以了!
showjancn 2011-08-26
  • 打赏
  • 举报
回复
顶一个,一般不用对象时,我都用DataSet还真没碰到这个,学习了!
ruanwei1987 2011-08-26
  • 打赏
  • 举报
回复
学到了,不告诉你们
moonwrite 2011-08-26
  • 打赏
  • 举报
回复
datatable 是。net特有的类型
还是用对象数组把 就是实体类
fengyunzb 2011-08-26
  • 打赏
  • 举报
回复
我做WebServer的时候遇到一个
在Web服务中用DataTable未设置名称就会报这个错误,解决方法:
DataTable dt=new DataTable();
dt.TableName = "MyTable";就OK了
当然也可不用Datatable而用DataSet
skyaihuacai 2011-08-26
  • 打赏
  • 举报
回复
LS正解+1
qldsrx 2011-08-26
  • 打赏
  • 举报
回复
还有一个要注意的,必须在服务接口的声明上方添加DBNull的类型说明,否则也会出问题(遇到为空列的话),例如:
    [ServiceKnownType(typeof(DBNull))]
[ServiceContract]
public interface IServer
{

}
qldsrx 2011-08-26
  • 打赏
  • 举报
回复
很简单的问题,我也碰到过,自己解决了。
DataTable必须设置名称。
例如:DataTable dt = new DataTable("Table1");
这里的“Table1”必须有,但是命名随意,这个缺少就会序列化报错,而且错误原因会不明,显示不出来。
ahljxwy 2011-08-26
  • 打赏
  • 举报
回复
比ADO.NET慢?
ahljxwy 2011-08-26
  • 打赏
  • 举报
回复
cxcsa

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧