2010-10-14 3 views

ответ

0

Короче говоря, вы можете сделать это просто через конфигурацию!

Have you seen this tutorial? Do check this out.

Его отличный учебник с изображениями на экране всего базового процесса настройки пробной службы с несколькими конечными точками с использованием Microsoft Service Configuration Editor.

+1

Ссылка мертва ... – Vaccano

+1

Yup. Ссылка мертва. Фактический полный ответ всегда лучше, даже если ti говорит то же самое в ссылке. –

+0

@ Vaccano/Coral - Обновлена ​​ссылка. Хотя я обычно соглашаюсь с комментариями Корала относительно публикации контента, в этом случае я нахожу его слишком длинным и с множеством пошаговых скриншотов - поэтому я не думаю, что на самом деле любой хороший способ сделать это в сжатом манера. Отсюда ссылка. – InSane

12

Это вся конфигурация - когда вы определяете свой сервис, вы просто идете и определяете две конечные точки - одну для wsHttpBinding, а другую для netTcpBinding. Это так просто!

<system.serviceModel> 
    <services> 
     <service name="YourNamespace.MyService"> 
     <endpoint 
      address="ws" 
      binding="wsHttpBinding" 
      contract="YourNamespace.IMyService" /> 
     <endpoint 
      address="net.tcp://localhost:8787/MyService" 
      binding="netTcpBinding" 
      contract="YourNamespace.IMyService" /> 
     <host> 
      <baseAddresses> 
       <add baseAddress="http://localhost:8282/" /> 
      </baseAddresses> 
     </host> 
    </service> 
    </services> 
</system.serviceModel> 

Теперь у вас есть служба обнажая две конечные точки:

  • один с помощью wsHttpBinding на http://localhost:8282/ws
  • один с помощью netTcpBinding на tcp://localhost:8787/MyService

обе конечные точки находятся на одной и той же службы , за тот же контракт на обслуживание, например предлагают те же функциональные возможности и методы обслуживания.

Каждая служба конечные точки в WCF должны определить ABC ФОС:

  • [A] ddress - где может быть достигнут сервис/под название?
  • [B] inding - как можно назвать услугу (протокол, настройки, безопасность и т. Д.)?
  • [C] ontract - что предлагает услуга по этому адресу, какие методы выставлены?
+1

Вы также можете указать базовый адрес для nettcp, только для согласованности. –

+1

@Johann Blais: Да, вы определенно могли бы это сделать - это полностью зависит от вас. Я просто хотел показать оба метода - с базовым адресом (для http) и без указания явного, полного адреса в теге . –

+0

Я пробовал это, но когда я обращаюсь к http: // localhost: 8282/ws, я получаю HTTP 404 - Ошибка файла не найдена. Нужно ли что-то еще? –

Смежные вопросы