Две службы WCF, размещенные в одном консольном приложении

У меня есть одно консольное приложение в качестве хостинга для службы WCF. Теперь я собираюсь добавить еще один сервис WCf для целей администрирования. Итак, вот мой код:

[ServiceContract]
public interface IServiceAdmin
{
    [OperationContract]
    int GetCount();
}

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
public class ServiceAdmin : IServiceAdmin
{        
    public int GetCount()
    {
        // It's just a stub to go on
        return 1;
    }
}

Вот выдержка из App.config применяется к услугам:

<serviceBehaviors>
     <behavior name="MyService.ServBehavior">
       <dataContractSerializer maxItemsInObjectGraph="2147483646"/>
       <serviceMetadata httpGetEnabled="false" />
       <serviceDebug includeExceptionDetailInFaults="true" />
     </behavior>
   </serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyService.ServBehavior" name="MyService.MyServ">
  <endpoint address="MyServ" behaviorConfiguration="" binding="netTcpBinding" contract="MyService.IMyServ"  isSystemEndpoint="false" />
  <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="MyService.ServBehavior" name="MyService.MyServAdmin">
  <endpoint address="MyServ" behaviorConfiguration="" binding="netTcpBinding" contract="MyService.IServiceAdmin"  isSystemEndpoint="false" />
  <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />  
</service>

И вот как я начинаю услуги:

static void Main(string[] args)
{
ServiceHost myserviceHost = new ServiceHost(typeof(MyServ), new Uri("net.tcp://192.168.1.40:8730/"));
myserviceHost.Open();

ServiceHost myAdminHost = new ServiceHost(typeof(AServiceAdmin), new Uri("net.tcp://192.168.1.40:31337/");
myAdminHost.Open();

Console.ReadLine();
}

Проблема в том, что обычный сервис работает хорошо (обмен метаданными может предоставить информацию о методах обслуживания), а другой сервис (который я упоминал в начале, администрирование сервиса) вообще не работает. Это причина этого?

Заранее спасибо!

1 ответ

Решение

Проблема была в неправильном названии сервиса в App.Config. Правая линия

<service behaviorConfiguration="MyService.ServBehavior" name="MyService.ServiceAdmin">
Другие вопросы по тегам