c# - 关于检查 WCF 连接是否打开的问题

标签 c# .net winforms wcf

我在检查 WCF 连接是否打开时遇到问题。我的 WCF 连接是双向的。我使用 State 属性来检查客户端的连接状态。我的功能:

private bool ConnectionIsOpen()
{
    if (m_Service != null && (m_Service.State | CommunicationState.Opened) == CommunicationState.Opened)
    {
        return true;
    }
    return false;
}

我创建了一个服务,它是一个每 10 秒运行一次的线程,用于检查连接状态。我使用 ConnectionIsOpen() 方法进行检查。在 Windows XP 上运行一切正常。但是在 Windows 7 上运行时会出现问题。

当我拔下网线创建断开连接时,如果在 Windows XP 上运行应用程序,检查连接的状态是错误的,但如果在 Windows 7 上运行,检查连接的状态仍然是打开的。

在这种情况下,任何人都可以帮助我检查连接是否打开。谢谢。

最佳答案

这将永远是true:

(m_Service.State | CommunicationState.Opened) == CommunicationState.Opened

例如,m_Service.State = 0:

0 | CommuncationState.Opened == CommuncationState.Opened

您想改用 & (AND)。

关于c# - 关于检查 WCF 连接是否打开的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921381/

相关文章:

c# - 带有 SslStream 的 XmlTextReader - 从流中读取多个 xml

c# - 如何在 SslStream.AuthenticateAsClient 期间从 X509Certificate 对象中提取域名? (.NET4)

c# - 如何将我的控制台应用程序 dll 放入逻辑应用程序调度程序而不是 Web 作业中?

c# - 错误抛出 TypeLoadException

c# - 如何防止 MySql 中出现重复行?

TargetFrameworkVersion 的 C# 编译器开关

.net - 使用 DebugDiag 调试转储文件时出错

c# - 如何在 WinForm 应用程序的文本框中显示特定的数据库条目

VB.net NUnit (2.5) Windows 窗体测试 - 这可能吗

c# - 您如何控制运行时属性网格中的可见内容?