考虑以下 WCF 服务的基本单元测试代码。
for (int i = 0; i < 10000; i++)
{
ServiceClient proxy = null;
try
{
proxy = new ServiceClient("basicHttpService"); // or netTcpService
Order[] orders = proxy.Find(Guid.Empty);
}
finally
{
if (proxy != null && proxy.State == CommunicationState.Opened)
proxy.Close();
}
}
我很惊讶 netTcp 端点需要 2.5 分钟进行 10k 次迭代,而 basicHttp 需要 23 秒。在整个循环期间保持连接打开使两个端点的性能大致相同。(约 20 秒)
与basicHttp相比,打开netTcp连接如此繁重是否正常?