用C# WCF写的WinForm服务端程序,怎样才能更稳定一些?

z547546249 2017-06-04 08:07:32
我现在写了一个C# 基于WCF winform 所有客户端登录,包括获取数据库数据都是经过这个服务器端,但是经常不稳定,数据量大容易崩溃,应该怎样改善呢?各位能不能给我点思路?是应该在执行方法的时候创建个线程?还是提升服务器配置?
...全文
571 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
z547546249 2017-06-06
  • 打赏
  • 举报
回复
各位大神很不好意思,最后一个问题,如果是wcf的话是不是寄宿在IIS上会比winform稳定?
wang_peng_yl 2017-06-06
  • 打赏
  • 举报
回复
引用 9 楼 z547546249 的回复:
引用 6楼以专业开发人员为伍 的回复:
只有深入测试调试之后,等你能贴出深入一点的调试信息之后,才知道是怎么回事儿。
您好,我的这个小程序耗时的操作包括和数据量交互都是用服务器端操作,我现在打算用Backgroundworker这个控件去开在新线程中执行耗时的统计方法,还有和数据库交互,包括更新在线状态等,然后在服务器端程序加入一个本地日志功能捕获异常,这样的思路应该可行吧?
这样的思路可以,就是把一个事分开干
西漠以西 2017-06-06
  • 打赏
  • 举报
回复
经常不稳定,数据量大容易崩溃 ------------------------------------------------------- 崩溃表现为什么?总会看到点异常信息吧?贴出来让我们看看啊!
wanghui0380 2017-06-06
  • 打赏
  • 举报
回复
额,结帖把。因为你没有测量标准,自然我们也没有解决办法 医生“你有啥问题,感觉那里有问题” 病人“我不知道,反正我感觉不舒坦” 医生“到底那里不舒坦” 病人“不知道,反正全身都不得劲” 你认为现在医生会说啥,只能说“好吧,我给你先开个全套体检,你那着化验单后在来把”
绿领巾童鞋 2017-06-06
  • 打赏
  • 举报
回复
你把过多的工作和任务都实现在WCF契约里面,你说它不卡才怪。你说数据量大,你可以看看WCF序列化传过来时候的对象字符串字节数多大,结果可能会吓你一跳。如果想简单的处理,要么延长超时时间(治标不治本),要么对象序列化后做做压缩,客户端解压缩。
by_封爱 版主 2017-06-05
  • 打赏
  • 举报
回复
wcf不是服务吗? 怎么又来一堆winform??
z547546249 2017-06-05
  • 打赏
  • 举报
回复
引用 6楼以专业开发人员为伍 的回复:
只有深入测试调试之后,等你能贴出深入一点的调试信息之后,才知道是怎么回事儿。
您好,我的这个小程序耗时的操作包括和数据量交互都是用服务器端操作,我现在打算用Backgroundworker这个控件去开在新线程中执行耗时的统计方法,还有和数据库交互,包括更新在线状态等,然后在服务器端程序加入一个本地日志功能捕获异常,这样的思路应该可行吧?
z547546249 2017-06-05
  • 打赏
  • 举报
回复
引用 4楼exception11 的回复:
数据量大容易崩溃,应该怎样改善呢 -》多大数据量, 配置文件里是否配置最大数据接收量?
就是可能是并发的原因导致的,多客户同时操作一个耗时的方法的时候。
  • 打赏
  • 举报
回复
只有深入测试调试之后,等你能贴出深入一点的调试信息之后,才知道是怎么回事儿。
  • 打赏
  • 举报
回复
先把你的程序的 bug 修复了吧。如果不知道调试修复 bug,那么就只好买保险。
exception92 2017-06-05
  • 打赏
  • 举报
回复
数据量大容易崩溃,应该怎样改善呢 -》多大数据量, 配置文件里是否配置最大数据接收量?
wang_peng_yl 2017-06-05
  • 打赏
  • 举报
回复
如果是局域网的,可以不用wcf,直接客户端访问数据为就完了, 一切业务逻辑放在客户端 如果就喜欢用wcf,学学NLB吧,负载均衡系列,中小型企业的解决方案
z547546249 2017-06-04
  • 打赏
  • 举报
回复
引用 1楼KvPiter 的回复:
既然是winform程序我觉得适当的可以把压力分摊到各客户端,比如统计出来常用的数据表进行本地化,这样可以减少交互次数!也可以在wcf端设立数据缓冲池,设计缓存等等
不过统计每次都是根据不同的条件,所以每次统计生成的表是不一样的,由于服务器是固定IP,是否能让客户端直接访问数据库,不用经过服务端程序?然后统计的方法都是在服务端程序,如果把这个统计方法另外开个线程处理是不是能达到很好的资源分配呢?
KvPiter 2017-06-04
  • 打赏
  • 举报
回复
既然是winform程序我觉得适当的可以把压力分摊到各客户端,比如统计出来常用的数据表进行本地化,这样可以减少交互次数!也可以在wcf端设立数据缓冲池,设计缓存等等

110,536

社区成员

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

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

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