gpt4 book ai didi

wcf - 通过共享 channel 的并发 WCF 调用

转载 作者:行者123 更新时间:2023-12-01 13:06:41 26 4
gpt4 key购买 nike

我有一个将调用转发到应用程序层的网络层。 Web 层使用共享的缓存 channel 来执行此操作。所讨论的应用层服务是无状态的,并启用了并发。

但它们并没有被同时调用。

如果我更改 Web 层以在每次调用时创建一个新 channel ,那么我确实会在应用层上获得并发调用。但我想避免这种成本,因为它对我的场景来说在功能上是不必要的。我没有 session 状态,也不需要每次都重新验证调用者。我知道创建 channel 工厂比创建 channel 要昂贵得多,但我仍然希望尽可能避免这种成本。

我找到了 this article在 MSDN 上声明:

While channels and clients created by the channels are thread-safe, they might not support writing more than one message to the wire concurrently. If you are sending large messages, particularly if streaming, the send operation might block waiting for another send to complete.

首先,我没有发送大消息(因为我正在进行负载测试,所以只发送了很多小消息)但我仍然看到阻塞行为。其次,这是相当开放且无用的文档。它说他们“可能不”支持写入多个消息,但没有解释他们支持并发消息的场景。

任何人都可以阐明这一点吗?

附录:我也在考虑创建一个网络服务器用来完成请求的 channel 池。但同样,我认为没有理由阻止我现有的方法,我宁愿尽可能避免复杂性。

最佳答案

费了好大劲,这一切都归结为我在使用之前没有在 channel 上显式调用 Open 的事实。显然,隐式 Open 可以在某些情况下排除并发。

关于wcf - 通过共享 channel 的并发 WCF 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2568158/

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