Мое приложение поддерживает несколько экземпляров одного и того же серверного процесса (службы Windows), как и f.e.SQL Server.
Взаимодействие клиент-сервер будет происходить только в одной сети.
Я могу использовать TCP, но тогда мне нужно настроить отдельные IP-порты для каждого экземпляра сервера. Однако я могу просто использовать именованные каналы, поэтому мне не нужно думать о номерах портов и просто использовать имя экземпляра сервера.
Не будет очень частой и/или большой связи между клиентом и сервером. Это своего рода ERP-приложение, которое будет общаться только один раз в 30 секунд в среднем.
Также я хочу предотвратить любое взаимодействие клиент-сервер вне сети (интрасети).
Каков здесь мудрый выбор?
Обновление: и клиент, и сервер написаны с использованием .NET 4, и ни один сторонний клиент не сможет использовать сервер.