2009-06-04 3 views
0

Мое приложение утечки каналов. Иногда некоторые каналы закрываются неправильно, но я не могу найти где. В какой-то момент мое приложение зависает, потому что нет канала, который можно открыть.Как получить все открытые каналы в WCF

Есть ли способ получить все открытые каналы в servicemodel, чтобы я мог решить проблему?

+0

На сервере или клиенте? Если сервер: вы являетесь владельцем собственного хостинга или хостинга в IIS/WAS? Какие протоколы могут быть использованы? Вам нужно предоставить немного больше информации, пожалуйста ..... –

ответ

0

Если вы еще не делаете что-то подобное, убедитесь, что вы повторно использовать/рециркуляции exising каналов с некоторым кодом, как это в базовом классе для ваших услуг:

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 
+0

И убедитесь, что вы закрываете и удаляете прокси каналов, когда они вам больше не нужны. –