WCF 初始化慢与 .NET 远程处理
本文关键字:处理 程处理 初始化 NET WCF | 更新日期: 2023-09-27 18:32:56
我正在尝试迁移 .NEt 远程处理应用程序到 WCF,现在两个服务(远程处理和 WCF)都共存。我有一个客户端同时使用这两个服务,我注意到在第一次调用 WCF 服务时,它比第一次调用 .NET 远程处理服务需要更长的时间。
使用 .NET 远程处理服务,第一个调用几乎立即得到响应。
.NEt 远程处理首次呼叫响应时间:不到一秒。
WCF 首次调用响应时间:大约 2 秒。
我知道打开 WCF 连接需要一些初始化成本,但是如何加快此 WCF 通道唤醒时间?
有什么提示吗?
WCF所做的不仅仅是远程处理。这项工作是有成本的。句点。
尝试在需要 WCF 服务之前调用它。请考虑向服务添加Heartbeat()
或Init()
方法以触发启动过程。如果启动在第一次调用之前完成,则后续调用不应有延迟。
如果可以选择在 AppFabric 中托管,则可以使用自动启动功能,该功能专门设计用于在第一次客户端调用之前初始化应用程序。
自动启动功能的优点
启用自动启动时 服务的功能,一旦 它所属的应用程序在服务之前启动 从客户端接收第一条 WCF 消息。因此,服务 快速处理第一条消息,因为它已初始化。