求救,winform远程传输该选用哪种方式

lizheng19860824 2010-03-29 10:29:54
公司最近一个项目开始用的是Winfrom + webservcie实现多个客户端与服务器进行数据交互,但后来测试发现数据超过几百条就很慢了,更不用说上万条记录了。用ADO。NET也可以直接远程操作数据库,但会不会有什么不好的后果。如果用.net remoting的话似乎要用tcp通道才会比webservice性能好一点,但是我们公司用的是万网的空间服务器,支持TCP传输的吗。
在WCF,.NET REMOTING, ADO.NET, WEB SERVICE 这几种方法中哪种最适合二十个左右客户端,每个客户端每次一万条左右数据的交互,望高手指点!
...全文
256 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
nimingxin1987 2010-03-30
  • 打赏
  • 举报
回复
服务器10M光纤,客户端2M宽带,WCF服务(HTTP)分次取,数据经过压缩,一次取200条,我取28000+用了24秒,不过应该还有提升空间,因为对WCF用得不熟
mayonglong 2010-03-30
  • 打赏
  • 举报
回复
数据量不小了
WCF试试~
lizheng19860824 2010-03-30
  • 打赏
  • 举报
回复
谢谢各位的指点,现在已经改成了WEB SERVICE分批传送,一万多条数据从传送到服务端到获取结果再返回一共耗时一分钟左右,还算可以接受,不过仍会继续寻找更有效的方法
glint 2010-03-29
  • 打赏
  • 举报
回复
虚拟主机有速率及CPU使用率限制,种种限制下,没准还是ADO.NET连接远程数据库最快,可以试试一次100条,来上100次,可以结合存储过程,要是SQL2005,还可以使用SQL CLR
lizheng19860824 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 glint 的回复:]
引用 12 楼 lizheng19860824 的回复:

引用 9 楼 mjay0210 的回复:
WCF适合进程间信息传递。 但不适合 大批量的信息。
首先数据要序列化,序列化后还要二进制化。浪费时间。
如果不是需要什么类对象,还是用Socket 自己传输。

谢谢,不过因为服务器是租的,用SOCKET会不会有什么端口问题

你租整台主机的话,都可以解决,否则万网不会允许你在……
[/Quote]

对,这就是遇到的最大问题,公司不愿花太多钱在硬件上投入,所以就只有叫我们从技术上想办法,技术经理叫直接用ADO.NET连接远程数据库,但我总觉得不太可行,所以发帖请教一下大家的意见。
glint 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lizheng19860824 的回复:]

引用 9 楼 mjay0210 的回复:
WCF适合进程间信息传递。 但不适合 大批量的信息。
首先数据要序列化,序列化后还要二进制化。浪费时间。
如果不是需要什么类对象,还是用Socket 自己传输。

谢谢,不过因为服务器是租的,用SOCKET会不会有什么端口问题
[/Quote]
你租整台主机的话,都可以解决,否则万网不会允许你在上面运行一个SOCKET服务器端程序,按虚拟主机这个方式,似乎webservices是唯一可行的,试试压缩了传输呢
Code従業員 2010-03-29
  • 打赏
  • 举报
回复
说错了,用户少、处理量大,应该用OLAP,分析事务处理。
Code従業員 2010-03-29
  • 打赏
  • 举报
回复
OLCP
lizheng19860824 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mjay0210 的回复:]
WCF适合进程间信息传递。 但不适合 大批量的信息。
首先数据要序列化,序列化后还要二进制化。浪费时间。
如果不是需要什么类对象,还是用Socket 自己传输。
[/Quote]
谢谢,不过因为服务器是租的,用SOCKET会不会有什么端口问题
wenbin 2010-03-29
  • 打赏
  • 举报
回复
那么大的数据量,
感觉还是使用SOCKET
自定义结构来传输,这样可以在根本上去减少数据包的大小
trentliu 2010-03-29
  • 打赏
  • 举报
回复
wcf ,或者 webservice 我觉得都是可以的

关键是有什么应用必须要经常进行1万条的交互?
1. 就像上面说的,业务系统中分页的数据最多几百条,怎么会到上万条。
2. 不知道你们考虑过数据同步问题没有,在同步设计中除了第一次基准同步外,后续的数据变更同步,频率和流量都是相当低的。 再复杂的应用,几百条数据交互就顶天了。

mjay0210 2010-03-29
  • 打赏
  • 举报
回复
WCF适合进程间信息传递。 但不适合 大批量的信息。
首先数据要序列化,序列化后还要二进制化。浪费时间。
如果不是需要什么类对象,还是用Socket 自己传输。
足球中国 2010-03-29
  • 打赏
  • 举报
回复
一次一万。本来就是瓶颈。。

相办法优化这里才是真的。
  • 打赏
  • 举报
回复
使用服务器端分页技术。

一次读取一万条数据,就相当于是在ASP.NET页面上加载一万条数据一样,肯定要假死了
cqdot 2010-03-29
  • 打赏
  • 举报
回复
不太可能,以前试用直接用ADO,不要说.net,以前直接用原生ADO连远程都受不了,几百条就是不稳定了,多个并发不现实,所以之前大部分的同步都是用FTP,先把数据打包再同步,不过现在很多开始用WS了,期待高手的更佳方案...
lizheng19860824 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 baesky 的回复:]
每次一万条显然就是瓶颈,你想想,不说其他的干扰因素,就是所有条件都满足的情况下,你的带宽,你的接收缓冲区,而且根据我的经验,一次一万条的查询也需要个0.0几秒的时间,这些应该从根本上首先优化。
当然WCF是最好的技术框架,但是你不熟的话根本不会用~
[/Quote]

WCF也研究过,但没在项目中用过,我如里用ADO.NET直接远程操作数据库最大的弊端是什么呢。
Baesky 2010-03-29
  • 打赏
  • 举报
回复
每次一万条显然就是瓶颈,你想想,不说其他的干扰因素,就是所有条件都满足的情况下,你的带宽,你的接收缓冲区,而且根据我的经验,一次一万条的查询也需要个0.0几秒的时间,这些应该从根本上首先优化。
当然WCF是最好的技术框架,但是你不熟的话根本不会用~
lizheng19860824 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kinglshadow 的回复:]
WCF整合了很多分布式开发技术,试试吧
[/Quote]

用WCF在internet上交互的话,效率是不是和WEB SERVICE差不多
kinglshadow 2010-03-29
  • 打赏
  • 举报
回复
WCF整合了很多分布式开发技术,试试吧
lizheng19860824 2010-03-29
  • 打赏
  • 举报
回复
不能沉啊,很急啊
加载更多回复(6)

110,536

社区成员

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

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

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