现在使用WINFORM 做宿主,采用basichttp 协议,现在发现用户数量一多就无法连接到服务器,有没有好的办法解决这个问题?

解决方案 »

  1.   

    题目太惊悚了,标题党越来越多了,wcf可以使用多台电脑做负载均衡的
      

  2.   

    如果真要从负载均衡角度处理,WCF是比较别扭,但将就这用也不是不行,可以设计一个任务分配服务器,帮助客户端与相对空闲的服务器端建立WCF通信
      

  3.   

    你的问题不是端口的问题,端口只是TCP协议中为区分服务器不同服务标记而已,肯定是内部程序或硬件配置问题,不知道你的服务器配置如何,如果只有512MB内存,加上开的线程较多,是有可能造成问题的,查一查连接到最大数时服务器系统的内存使用情况吧
      

  4.   

    你这用winform做服务器就有点奇怪了,怎么不使用iis或者windows service呢。
      

  5.   

    WCF有个行为属性 ServiceBehavior 里面有个值是InstanceContextMode。如果你的baseHttp支持Session的话有可能被设置为相同会话使用相同的实例。有可能造成请求队列阻塞的情况。把这个InstanceContextMode设置为percall就可以了。不知道是不是这个问题引起的。
      

  6.   

    可能是我没有说清楚 ,数量一多后客户端提示超时,连接不到WCF服务器,数据库服务器肯定没有问题,应该是WCF的问题,我新开一个WCF 服务 就可以连接到WCF服务器
      

  7.   

    为什么要到WCF这个层级去弄Load Balancing呢?服务器的负载平衡完全可以满足你的要求.如果你使用的Windows Server,搜索 Network Load Balancing  -  Windows Server
      

  8.   

    WCF效率确实有问题,以前应用的时候,并发100左右就会有服务器未响应的症状。
    用TcpListener的话,持续并发2000连接不上的概率不到0.5%。
    这两种在应用上不是一个量级的,感觉WCF只适合用来玩玩。
      

  9.   

    试试对WCF进行性能调优,微软官方应该有教程的,主要是针对配置文件就行修改来管理WCF能同时接收的并发数和使用的CPU资源等等。
    但是这个也只能在一定程度上提升性能,如果并发继续增大的话,那还是增加服务器做Load Balance更好。
      

  10.   


    同意!而且长连接的tcp,会比短连接的,又再提升4、5倍。