gpt4 book ai didi

c# - 如何在 Windows 服务中设置 WCF ServiceHost 以访问 Windows 服务中的状态信息

转载 作者:太空狗 更新时间:2023-10-30 01:12:05 25 4
gpt4 key购买 nike

我用 C# 编写了一个 Windows 服务。它运作良好,表现良好。我已将 WCF 服务添加到 Windows 服务,以使客户端应用程序能够连接到 Windows 服务并从 Windows 服务获取状态信息。

我将 WCF 服务配置为单例,以便使用相同的服务实例来处理来自所有客户端的所有请求,如下所示:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

所有客户端都能够连接并访问 WCF 服务中的相同状态信息。但是,我遇到了以下奇怪的行为。

修订:
我在我的 Windows 服务中实例化了 WCF 服务契约。实例化时分配的任何有状态信息都可供连接到该服务的所有客户端使用。

但是,以后直接从 Windows 服务(而不是客户端)添加到服务契约(Contract)实例的任何有状态信息对连接到该服务的客户端是不可见的。就好像服务契约有两个实例:一个用于 Windows 服务,一个用于连接到 WCF 服务的客户端。

实例化 WCF 服务并使其能够访问 Windows 服务中可用的有状态信息的推荐(最佳)方法是什么?

最佳答案

我建议通过将您的状态保存在静态成员中来解决此问题,这样 WCF 是否为每次调用创建新实例或重用实例都无关紧要。这解决了问题并简化了代码。

关于c# - 如何在 Windows 服务中设置 WCF ServiceHost 以访问 Windows 服务中的状态信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1277970/

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