我的应用程序正在泄漏频道。显然某些频道没有正确关闭,但我无法找到。在某些时候我的应用程序挂起,因为没有剩下的通道可以打开。
是否有一些方法可以获取服务模型中的所有开放频道,以便回溯问题?
答案 0 :(得分:0)
如果您还没有做过类似的事情,请确保您在服务的基类中使用某些代码重用/回收现有频道:
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