I have a WCF service written in .net 4, and exposed over net.tcp. Any time I try to set the MaxConnections property of the binding configuration to something higher than 10
<endpoint
address="mex"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding"
contract="IMetadataExchange" />
use binding="netTcpBinding", not mexTcpBinding, so the two endpoints can shahre the same netTcpBinding configuration. The maxConnections value can be the same!
Your mex endpoint defines binding configuration which is not part of your configuration snippet.
MaxConnection defines pooling of connections for given port. At the moment you are using two endpoints which share single port - ApiService and Metadata endpoints. Before you changes setting in your binding configuration both enpoints used default value - 10 connections in a pool. When you changed the value it affected only one endpoint second endpoint still demands 10 connections => exception. The solutions are:
At least first idea should work.