2009-06-04 5 views
0

Mon application est des canaux qui fuient.En général, certains canaux ne sont pas fermés correctement, mais je ne peux pas trouver où. À un moment donné, mon application se bloque parce qu'il n'y a plus de canal à ouvrir.Comment faire pour obtenir tous les canaux ouverts dans WCF

Existe-t-il une méthode pour obtenir tous les canaux ouverts dans le modèle de service, donc le problème est-il un retour en arrière?

+0

Sur le serveur ou le client? Si serveur: vous hébergez vous-même ou hébergez-vous dans IIS/WAS? Quels protocoles pourraient être en jeu? Vous devez fournir un peu plus d'informations, s'il vous plaît ..... –

Répondre

0

Si vous n'êtes pas déjà faire quelque chose de similaire, assurez-vous réutilisez/recyclage exising canaux avec un code comme celui-ci dans une classe de base pour vos services:

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

Et assurez-vous absolument de fermer et de disposer des proxies de canal lorsque vous n'en avez plus besoin –

Questions connexes