Как получить доступ к нескольким конечным точкам

Я создал тестовый сервис WCF WcfSampleLib с контрактом как IWcfSampleLib, а новый класс обслуживания - clsWcfSampleLib.

namespace WcfSampleLib
{
    public class clsWcfSampleLib:IWcfSampleLib
    {
        public string getMsg(string name)
        {
            return " HI " + name;
        }
    }

    [ServiceContract]
    public  interface IWcfSampleLib
    {
         [OperationContract]
        string  getMsg(string name);
    }
}

Теперь я добавил приложение окна формы для размещения моего WCF. Я создал App.config как

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>

    <behaviors>
          <serviceBehaviors>
            <behavior name="Beh">
              <serviceMetadata  httpGetEnabled="true" httpGetUrl="http://{server}:9097"/>
              </behavior>
           </serviceBehaviors>
    </behaviors>
    <services>

      <service name ="WcfSampleLib.clsWcfSampleLib" behaviorConfiguration="Beh">
        <endpoint address="http://{server}:9096/SomeName" binding="basicHttpBinding" contract ="WcfSampleLib.IWcfSampleLib"/> 
        <endpoint address="net.tcp://{server}:9095/SomeName1" binding="netTcpBinding" contract ="WcfSampleLib.IWcfSampleLib"/>
      </service>

    </services>    
  </system.serviceModel>
</configuration>

У меня есть две конечные точки для использования WCF от двух разных клиентов с разными конечными точками. Я добавил следующие строки кода в событие Form1_Load хост-приложения

 host = new ServiceHost(typeof(WcfSampleLib.clsWcfSampleLib));
 host.Open();
 MessageBox.Show("started");

Теперь я могу добавить ссылку на службу только с http://{server}:9097. Можно ли как-то использовать обе конечные точки с разными URL-адресами? Net.tcp: // {server}: 9095 /SomeName1 и http: // {server}: 9096 /SomeName

0 ответов

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