J'ai deux applications WCF communiquant unidirectionnelles sur des canaux nommés. Tout est bien, sauf pour une chose: Normalement, le cycle demande/réponse prend zéro (temps marginal). Cependant, s'il y avait une période de, disons, une demi-minute sans aucune communication, la demande/réponse augmente jusqu'à ~ 300-500ms. J'ai regardé autour du filet et j'ai eu l'idée d'utiliser un mécanisme de rythme cardiaque/ping pour garder le canal de communication occupé. À l'aide d'essais et d'erreurs, j'ai constaté que lorsque je fais une requête toutes les 10 secondes, les temps de réponse restent bas. À partir d'environ 15 secondes, les temps de réponse "hoquet" commencent à apparaître.NetNamedPipe: variation du temps de réponse lorsque la communication est inactive
Maintenant, je me demande d'où vient ce phénomène. J'ai essayé de mettre tous les délais d'attente imaginables des deux côtés à> 1 minute, mais cela n'a pas aidé.
Quelqu'un peut-il expliquer ce qui se passe là-bas?
J'ai ce même problème. Au début, je soupçonnais la mise en cache, mais les nouvelles données sont renvoyées instantanément si elles sont demandées dans les 15 secondes suivant un précédent appel au service. –