Próbuję uzyskać usługę WCF, aby wiedzieć, kiedy klient rozłączył się.Obsługa rozłączenia klienta w dupleksie Usługa WCF
Po przeczytaniu tego artykułu wcf notification on disconnect udało mi się przetestować projekt testowy.
Klient i serwer pozostają otwarte dopóki nie zamknę klienta, wtedy zdarzenie OperationContext.Current.Channel.Closed wydaje się uruchamiać po upłynięciu limitu czasu w poniższym wierszu.
<reliableSession enabled="true" ordered="true" inactivityTimeout="00:01:00" />
Po przetestowaniu tego działało jak chciałem, a następnie starałem się zintegrować go do większego projektu, który mam.
Wygląda na to, że zachowuje się inaczej, ponieważ OperationContext.Current.Channel.Closed uruchamia się nawet po czasie określonym w konfiguracji <reliableSession ordered="true" inactivityTimeout="00:01:00" />
, nawet jeśli klient jest nadal otwarty.
Rzeczy, które zauważyłem, że są różne, to fakt, że nie mogę określić właściwości enabled = "true" w konfiguracji. Również drugi projekt używa WSDualHTTPBinding, podczas gdy pierwszy używa WSHTTPBinding.
Moje pytanie brzmi: dlaczego drugi projekt zachowuje się w ten sposób i jak mogę go zachowywać jak pierwszy?
Jeśli potrzebujesz plików z kodem lub wpisów konfiguracyjnych, daj mi znać, a otrzymam je od razu.
poważaniem
Ash
Na jakich platformach działa klient? –