Это, конечно, возможно, и я бы сказал, мудро - особенно если вы размещаете его в качестве веб-службы на порту 80, но даже и на TCP. Мне всегда казалось чрезмерным иметь порт для каждой услуги.
Вам потребуется порт для привязки (поэтому выберите порт для TCP, один для HTTP и т. Д.).
Вы можете указать один и тот же корневой адрес для своих служб, например, так (это служба JSON REST, но привязка не имеет значения) - обратите внимание на атрибуты адреса:
<system.serviceModel>
<services>
<service name="Demo.SampleService2Implementation">
<endpoint address="http://localhost:85/sample2"
behaviorConfiguration="json"
binding="webHttpBinding"
name="jsonEndpoint2"
contract="Demo.ISampleService2" />
</service>
<service name="Demo.SampleServiceImplementation">
<endpoint address="http://localhost:85/sample1"
behaviorConfiguration="json"
binding="webHttpBinding"
name="jsonEndpoint1"
contract="Demo.ISampleService" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="json">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
И это конфигурация клиента:
<system.serviceModel>
<client>
<endpoint name="SampleServiceEndpoint"
address="http://localhost:85/sample1"
binding="webHttpBinding"
contract="Demo.ISampleService"
behaviorConfiguration="json">
</endpoint>
<endpoint name="SampleServiceEndpoint2"
address="http://localhost:85/sample2"
binding="webHttpBinding"
contract="Demo.ISampleService2"
behaviorConfiguration="json">
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="json">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>