如何解决CoreWcf 服务在一段时间后挂断
我曾经有一些 NET Framework WCF 服务。它像发条一样工作。 NET5 和 CoreWCF 发布后,我将该服务迁移到了 NET5 和 CoreWCF。
现在它在一段时间后挂断。如果负载很轻,那么它可能会工作一天左右(然后随机死亡),但如果负载变重,那么它可能会在一小时左右死亡。当它死亡时,我可以看到它开始消耗大量的处理能力。
客户端工作正常,即使我重新启动服务,他们也会连接(在抱怨服务不可用一段时间后)。
服务作为单例运行。
记录然后监视记录何时消失似乎是弄清楚发生了什么的唯一方法。不幸的是,这种日志记录会产生大量的数据,即使在服务的“核心”不再正常运行之后,它似乎也会产生一些数据。
切换到 gRPC 是可能的。但是,这将需要重写所有客户端。
调试是行不通的,因为服务死了,比方说,在一小时到一天之间的某个时间,当它处理多个连接和计时器事件时。
我想知道是否有人有任何想法。非常感谢!
解决方法
建议:在调试器中运行服务,然后查看它在哪里停止和/或开始消耗 CPU 周期。
如果您不能使用调试器,那么我认为日志记录/监控是您最好的选择。也许您可以减少记录的数据量,只关注服务的“核心”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。