永发信息网

C#远程数据传输上传问题

答案:3  悬赏:50  手机版
解决时间 2021-03-07 06:29
  • 提问者网友:愿为果
  • 2021-03-07 02:47
C#远程数据传输上传问题
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-03-07 03:25
我给你一种建议:
如果你的系统不要求进行会话保持及服务器向客户端主动通信的话(winform中即有有主动需求也可转主动为被动),可以采用webService模式.

在服务器上设计一个webservice,然后用你的winform调用.
接下来的活就和调用一个DLL是一种效果了.

webService走的是web服务器,例如IIS,所以,基本不用考虑它的多用户下怎么排队的问题,你做asp.net时不是也没有去考虑用户怎么排队的问题吗?

在此基础上,只要你解决了多用户在同时操作时数据不会发生冲突,那就没必要一定要中转一道文件来绕远路了,直接就可以像网站一样与数据库直接交互了.

如果你发现你每一次上传数据行别庞大,那你就要发挥winform的优势了,在网页程序里,想要逐个,逐批的发送数据是很难的,但是在Winform程序里,你可以把大数据量分装成你认为合适的批次发送.还可以实时的看着进度.

原则就是,每一次与webservice的交互响应时间,不要超过一秒钟.
对于一些软件系统来说,用户怕的不是它比别人慢了几秒几分钟,而是用户点一下后,你的程序一点击就死了一样的定在那里,让用户不知所措,直到等它执行完了,才反醒过来,直接给结果.没有中间过程,用户不知道它现在在做什么,做到哪儿了.
全部回答
  • 1楼网友:孤老序
  • 2021-03-07 04:41
先把数据类XML序列化---->数据加密--->然后通过某种(sockets)协议上传到服务器某一文件夹---->服务器检测文件夹数据有更新--->数据解密--->反向序列化--->读入数据库。
序列化会加大文件,我觉得可以先压缩,压缩后再传给服务器,服务器接收完了再解压。
用FTP也可以,不用自己写算法。
  • 2楼网友:酒者煙囻
  • 2021-03-07 04:03
数据类XML序列化---->数据加密--->POST到WebServices-->数据解密--->反向序列化--->读入数据库。
因为是Post到WebServices服务器上的,所以就不存在排队问题,
也就不存在检测文件夹中有数据添加的事件了,其实检测就是轮询,很占资源的
至于一次提交的数据比较大的情况,
在客户端:可以在winFrom里面设置进度条,用户不会以为程序死了
在服务端:WebServices的等待时间(最长执行时间)可以设置的稍微长一些,
如果真的非常非常大,那就以提交(上传)文件的形式发送嘛。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯