Добавление сервисной ссылки на сервис net.pipe

Я начал изучать WCF и успешно создал несколько тестовых http-сервисов. Теперь я пытался создать собственный сервис WCF, используя привязку net.pipe. Ниже приведен файл конфигурации для службы:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
    <services>
        <service behaviorConfiguration="MEX" name="InProcService.MyService">
            <endpoint address="MyService"
                binding="netNamedPipeBinding" bindingConfiguration="" contract="InProcService.IMyService" />
            <endpoint address="Mex" binding="mexNamedPipeBinding"
                contract="IMetadataExchange" />
            <host>
                <baseAddresses>
                    <add baseAddress="net.pipe://localhost/InProcService/" />
                    <add baseAddress="http://localhost:8001/InProcService/" />
                </baseAddresses>
            </host>
        </service>
    </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="MEX"  >
        <serviceMetadata httpGetEnabled="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>
</configuration>

Теперь в моем хост-приложении я запускаю сервис, используя:-

        ServiceHost host = new ServiceHost(typeof(MyService));
        host.Open();
        Console.WriteLine("Service started");

        host.Close();

Служба запускается правильно, когда этот код выполняется.

Теперь, когда в моем клиентском приложении я пытаюсь добавить ссылку на службу к этой запущенной службе, она не может найти ее. Есть ли что-то, что я не делаю или делаю неправильно?

Я был бы признателен за любую помощь, которую я могу получить в этом.

Ура, Абхи.

1 ответ

Решение

Сервис открывается и закрывается после этого. К моменту запуска клиента сервер уже закрыт. Поэтому Console.ReadKey() требуется перед закрытием.

Другие вопросы по тегам