У вас есть два идентичных базовых адреса:
<service name="SUR.Core.Service.Implementation.SURDirectoryService"
behaviorConfiguration="DefaultServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://127.0.0.1:8731/ISURDirectoryService"/>
</baseAddresses>
<service name="MSS.Core.Service.Implementation.MSSDirectoryService"
behaviorConfiguration="DefaultServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://127.0.0.1:8731/IMSSDirectoryService" />
В этом причина ваших проблем - при подключении к net.tcp://127.0.0.1:8731/
WCF не знает, какую службу вы имеете в виду.
Базовый адрес должен быть УНИКАЛЬНЫМ в пределах его "схемы" (например, http, net.tcp и т. Д.)
Марк
РЕДАКТИРОВАТЬ: если вы хотите иметь возможность получать свои метаданные с помощью браузера и переходить по URL-адресу, чтобы получить их, вам нужно активировать <serviceMetadata httpGetEnabled="True"/>
в вашем поведении службы. В противном случае вы сможете получить доступ к метаданным только с помощью вызова SOAP через net.tcp - например, с помощью приложения «WcfTestClient.exe», которое находится в папке Visual Studio 9 / Common7 / IDE.
РЕДАКТИРОВАТЬ 2: вы определили ряд дополнительных привязок и поведений для MEX, но, поскольку ни одна из ваших конечных точек mex не ссылается ни на одну из этих настроек, они не используются.