我在检查 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/