1

我正在尝试将 .NEt Remoting 应用程序迁移到 WCF,现在这两个服务(Remoting 和 WCF)都在一起。我有一个客户端同时使用这两种服务,我注意到在第一次调用 WCF 服务时,它比第一次调用 .NET Remoting 服务花费的时间要长一些。

使用 .NET Remoting 服务,第一个调用几乎可以立即得到响应。

.NEt Remoting 第一次调用响应时间:不到一秒。

WCF首次调用响应时间:约2秒。

我知道打开 WCF 连接需要一些初始化成本,但是如何加快这个 WCF 通道唤醒时间?

有什么提示吗?

4

2 回答 2

3

WCF 所做的远不止远程处理。这项工作是有代价的。句号。

在需要之前尝试调用 WCF 服务。考虑在服务中添加一个Heartbeat()orInit()方法来触发启动过程。如果第一次调用就完成了启动,那么后续调用应该不会有延迟。

于 2013-09-26T10:15:32.123 回答
1

如果您可以选择在 AppFabric 中托管,那么您可以使用专门设计用于在第一次客户端调用之前初始化应用程序的自动启动功能。

自动启动功能的好处

当您为服务启用自动启动功能时,该服务会在它所属的应用程序启动后并且在服务从客户端接收到第一条 WCF 消息之前立即启动并运行。因此,服务会快速处理第一条消息,因为它已经被初始化。

于 2013-09-27T19:28:17.870 回答