As long as you save and start the service and client proxy, the underlying connection in WCF should also remain open. Even below this, it looks like the binding uses connections from the TCP connection pool, as shown on the NetTcpBinding MSDN page:
NetTcpBinding uses a TCP connection pool based on the DNS host name of the services and the port number that the service is listening on.
I am not an expert on how the TCP connection pool works; you can try using a sister site, such as ServerFault , for more details on this.
If you want to control all this, then the only property that I can see can be changed for the finished NetTcpBinding MaxConnections . However, if you really want to dive deep, you can also create your own custom binding with TcpTransportBindingElement , which gives you even more fine-grained control over TcpConnectionPoolSettings .
In any case, if I dared to suggest, I think that creating a service host and a client proxy will take much more time (relatively) than any time spent getting a connection from the pool, so saving these two openings may be enough for your requirements .
The reason I asked in the commentary why you want the connection to remain open is because it can hardly be a requirement in itself. However, speed and response time are a real requirement, so the best advice is probably to make these requirements explicit (quantify / qualify your need for speed) and run some tests to determine what is best / necessary for your situation.
source share