InactivityTimeout для ReliableSession. Это количество времени, в течение которого канал будет оставаться открытым, пока сообщения приложения не будут отправлены по проводам. Таким образом, если у вас есть клиент для вызова операции, а затем на некоторое время неактивный, тайм-аут неактивности приведет к сбою клиентского канала, если клиент не отправит другое сообщение службе в течение настроенного тайм-аута.
ReceiveTimeout - это время, которое может занять отдельная операция приема. Например, клиент отправляет сообщение в сервис. Если службе требуется больше времени, чем ReceiveTimeout, чтобы завершить чтение этого сообщения, произойдет сбой.
Аналогичным образом, SendTimeout - это тайм-аут того, сколько времени может занять одна операция отправки.
Проще говоря - (Отправка / получение) Тайм-аут контролирует, сколько времени может занимать отправка и получение сообщений. InactivityTimeout - это настройка для сеанса, связанная с тем, как долго вы не позволяете ничего не делать.
Если вы включите Fiddler и будете наблюдать за сообщениями в сети, вы увидите, что при большом значении InactivityTimeout и достаточно длительном времени простоя между отправкой сообщений будут храниться сообщения «Keep Alive», передаваемые базовым ReliableSessionBindingElement канал жив, несмотря на отсутствие связи со стороны приложения.