gpt4 book ai didi

wcf - 停止服务时客户端 CPU 几乎达到 100%

转载 作者:行者123 更新时间:2023-12-04 13:03:37 29 4
gpt4 key购买 nike

我们有一项托管为 Windows 服务的服务。 netTcpBinding 具有无可靠 session 的消息安全类型。

在客户端,我们有一个缓存在列表中的代理集合,因为 channel 创建和处理是昂贵的操作。我的客户端正在连接到服务器并从服务器获取数据。

现在如果我停止服务器,CPU 就会跳起来。消耗CPU的工作线程是为了

的代码执行
void System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, NativeOverlapped *)

当我处理所有代理时,客户端应用程序 CPU 消耗变为零。我需要知道我们如何解决 WCF 上的这个问题。

最佳答案

一个问题是为什么您要在客户端上为单个 wcf 服务收集代理。假设您有 20 个代理,并且 WCF 服务实例是每个 session ,那么它将在您的服务器上创建 20 个服务实例,每个实例都分配有内存。如果你有 per-call(这是默认的)那么你将有更多的实例。您不能重复使用一个代理,而不是拥有代理列表。

我想当你停止服务时,cpu 必须在短时间内清理(垃圾收集)太多服务实例,因此它会跳转。

除非您不关闭代理,否则它们在服务器上的各自实例将不会被释放。尝试创建单例实例。

关于wcf - 停止服务时客户端 CPU 几乎达到 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255574/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com