小编Man*_*ani的帖子

当InstanceContextMode是具有Net.Tcp绑定的WCF服务的PerCall时,Multipleurrency的ConcurrencyMode是否具有相关性?

我一直认为将InstanceContextMode设置为PerCall会使并发模式无关紧要,即使使用会话感知绑定(如net.tcp)也是如此.这就是MSDN所说的 http://msdn.microsoft.com/en-us/library/ms731193.aspx "在PerCallinstancing中,并发性是不相关的,因为每个消息都由新的InstanceContext处理,因此,永远不会超过一个线程在InstanceContext中处于活动状态."


但今天我正在阅读Juval Lowy的书"编程WCF服务",他在第8章写道

如果每个呼叫服务具有传输级会话,则是否允许并发处理呼叫是服务并发模式的产物.如果使用ConcurrencyMode.Single配置服务,则不会对挂起的调用进行并发处理,并且一次调度一个调用.[...]我认为这是一个有缺陷的设计.如果使用ConcurrencyMode.Multiple配置服务,则允许并发处理.呼叫在到达时分派,每个呼叫到新实例,并同时执行.这里一个有趣的观察是,为了输出,使用ConcurrencyMode.Multiple配置每个呼叫服务是个好主意 - 实例本身仍然是线程安全的(因此您不会产生同步责任) ,但您将允许来自同一客户端的并发呼叫.


这与我的理解和MSDN所说的相矛盾.哪个是对的 ?在我的情况下,我有一个WCF Net.Tcp服务使用我的许多客户端应用程序创建一个新的代理对象,进行调用,然后立即关闭代理.该服务具有PerCall InstanceContextMode.如果我将InstanceContextMode更改为Multiple而没有比percall更糟糕的线程安全行为,我是否会获得更高的吞吐量?

wcf multithreading

10
推荐指数
1
解决办法
4130
查看次数

防止在Visual Studio 2017中自动启动WCF服务主机

目前,我正在与多个WCF项目一起开发解决方案。在同一解决方案中禁用调试另一个项目时,请启动WCF服务主机。所有这些在Visual Studio 2015及更低版本中均能正常运行-无需自动启动WCF服务主机。

自从更改为Visual Studio 2017以来,无论如何都启动了WCF项目。不是每次都这样,但偶尔。这会浪费大量时间和性能,有时甚至是几分钟。我已经检查了WCF选项-自动启动WCF服务主机的复选框仍未选中。

如何在Visual Studio 2017中禁用WCF服务主机的这些偶尔自动启动?


编辑

这是一个错误,现已在即将发布的版本中修复。请在此处查看错误状态(已修复-待发布)。

c# wcf visual-studio

5
推荐指数
1
解决办法
1104
查看次数

标签 统计

wcf ×2

c# ×1

multithreading ×1

visual-studio ×1