C# 如何获取WCF中的所有开放频道

C# 如何获取WCF中的所有开放频道,c#,.net,wcf,C#,.net,Wcf,我的应用程序正在泄漏通道。似乎有些通道没有正确关闭,但我找不到位置。在某个时候,我的应用程序挂起,因为没有剩余的通道可以打开 是否有某种方法可以获取servicemodel中的所有开放频道,以便对问题进行回溯?如果您还没有做类似的事情,请确保在服务的基类中使用类似的代码重用/回收现有频道: Protected ReadOnly Property MyService() As MyServiceClient Get ' Initialise My Service and r

我的应用程序正在泄漏通道。似乎有些通道没有正确关闭,但我找不到位置。在某个时候,我的应用程序挂起,因为没有剩余的通道可以打开


是否有某种方法可以获取servicemodel中的所有开放频道,以便对问题进行回溯?

如果您还没有做类似的事情,请确保在服务的基类中使用类似的代码重用/回收现有频道:

Protected ReadOnly Property MyService() As MyServiceClient
    Get
        ' Initialise My Service and return it
        If m_objMyService Is Nothing OrElse m_objMyService.State = CommunicationState.Closed OrElse m_objMyService.State = CommunicationState.Faulted Then
            m_objMyService = MethodToGetServiceClient(Of MyServiceClient, MyService)()
        End If
        Return m_objMyService
    End Get
End Property

在服务器上还是在客户端上?如果服务器:您是自托管还是在IIS/WAS中托管?什么协议可能在起作用?您需要提供更多的信息,请…..并确保在您不再需要频道代理时关闭并处理它们