Чтобы «спрятать» его, вам нужно отключить любой обмен метаданными, поэтому вам нужно удалить:
<serviceMetadata httpGetEnabled="true" />
из вашего служебного поведения, и вам нужно удалить конечную точку mex:
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
Однако, это только «затеняет» это. Чтобы не вызывать кого-либо, кроме localhost, - почему бы не переключиться на netNamedPipeBinding
, который по замыслу «только на этой машине», - никакие внешние абоненты не могут звонить в эту конечную точку.
В противном случае вам придется проверить IP-адрес вызывающего абонента и заблокировать его на основе этой информации, которая, однако, может быть подделана довольно легко ...