2009-06-04 11 views
0

Meine Anwendung leckt Kanäle.Apparently einige Kanäle werden nicht korrekt geschlossen, aber ich kann nicht finden, wo. Irgendwann hängt meine Anwendung, weil es keinen Kanal mehr zu öffnen gibt.Wie bekomme ich alle offenen Kanäle in WCF

Gibt es eine Methode, um alle offenen Kanäle im Servicemodell zu bekommen, so dass ich das Problem zurückverfolgen kann?

+0

Auf dem Server oder dem Client? Wenn Server: Selbsthosting oder Hosting in IIS/WAS? Welche Protokolle könnten im Spiel sein? Sie müssen ein bisschen mehr Informationen geben, bitte ..... –

Antwort

0

Wenn Sie nicht bereits etwas Ähnliches zu tun, stellen Sie sicher, dass Sie die Wiederverwendung/Recycling-Kanäle mit einigen Code wie dies in einer Basisklasse für Ihre Dienste 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

Und stellen Sie absolut sicher, die Kanalproxies zu schließen und zu entsorgen, wenn Sie sie nicht mehr brauchen –

Verwandte Themen