У меня есть сессионная служба WCF, которая порождает процесс и открывает именованный канал для этого процесса при вызове операции IsInitiating. Когда вызывается операция IsTerminating, служба отправляет сообщение по каналу, чтобы сообщить процессу на другом конце, что он может завершить работу. К сожалению, если клиент не отключается изящно (вызывая операцию IsTerminating), то сообщение никогда не отправляется в канал, а другой процесс никогда не завершается.
Я пытался сделать так, чтобы моя служба реализовывала IDisposable (в надежде, что, когда время сеанса на сервере истечет, он вызовет мой метод Dispose), но, похоже, это не работает.
Можно ли как-нибудь вызвать код на стороне сервера, когда клиент отключился (даже если мне придется ждать inactivityTimeout)?