22 回答
TA贡献1995条经验 获得超2个赞
@程序猿就是我: 现在我的做法是:
1.把服务单独放到一个线程里面
Thread thread = new Thread(StartService) { IsBackground = true };
thread.SetApartmentState(ApartmentState.MTA);
thread.Start();
2.然后设置并发模式以及实例模式
[ServiceBehavior(UseSynchronizationContext = false, ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerCall)]
3.在配置文件里面增加并发量连接数
<serviceThrottling maxConcurrentCalls="1000" maxConcurrentInstances="1000" maxConcurrentSessions="1000"/>
不知道这些配置能不能够满足这些配置。。。
TA贡献1856条经验 获得超5个赞
你选择winform,肯定是有业务需要的。业务流程是不是这样的,前端选择菜,通过wcf传输给后端,后端通过winform显示客户点的菜,然后后厨看看有没有原材料了,也就是能否接受这个点菜,接受与否都会操作一下,然后你的前端会看到效果,决定继续点菜还是告诉客人换菜,后厨做好菜了,就通过winform操作一下,前端收到菜已做好的信号,就去拿菜给客人,业务流程是不是这样的呢?整个过程需要后端winform和前端的交互。所以你选择winform作为host。
TA贡献1818条经验 获得超11个赞
1,把配置拿出来看看,并发10个不算什么。
2,说明程序写的有问题,有资源没释放或者内存泄露的情况,很有可能数据库连接用完没释放。
3,推测点菜什么的数据量不大,逻辑也不耗时,没必要异步。
4,如上,另外用个非UI线程用来跑host
- 22 回答
- 0 关注
- 915 浏览
添加回答
举报