gpt4 book ai didi

c# - WCF 能否处理对同一终结点的同时调用?

转载 作者:行者123 更新时间:2023-11-30 18:23:26 24 4
gpt4 key购买 nike

我在公开一个端点的 Windows 服务下开发 WCF 应用程序。大约有 40 个远程客户端将同时通过局域网连接到此端点。我的问题是 WCF 是否可以通过排队来处理对同一端点的多个调用?任何客户的请求都不会丢失。在开发处理同时调用的应用程序时,我有什么特别需要考虑的吗?

最佳答案

您可以选择一个接一个地异步或同步处理请求。

您可以通过 InstanceContextMode 设置来设置此行为。默认情况下,WCF 处理请求ByCall,这意味着将为每个传入请求创建一个服务实例。这允许您并行处理多个请求。

或者,您可以将您的服务配置为仅分拆一个实例,以确保每个请求都在另一个请求之后得到处理。这实际上就是您提到的“排队”。您可以通过 InstanceContextMode.Single 设置此行为。通过选择此模式,您的服务将变为单例。所以这种模式确保你的服务只有一个实例,这在某些情况下可能会派上用场。该框架处理排队。

此外,您可以设置ConcurrencyMode.Multiple,它允许您的单个实例并行处理多个请求(参见 Andrew 的评论)。

但是,请注意排队的请求不会以任何方式持久化。因此,如果您的服务重新启动,则尚未完成的请求将丢失。

如果可能的话,我肯定会建议避免任何类型的单例。是否有任何因素阻止您选择并行 PerCall 模式?

有关更多详细信息,请查看:http://www.codeproject.com/Articles/86007/ways-to-do-WCF-instance-management-Per-call-Per

关于c# - WCF 能否处理对同一终结点的同时调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32294187/

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