Это все конфигурация - когда вы определяете свою службу, вы просто определяете две конечные точки - одну для 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 WCF:
- [A] ddress - где услуга может быть достигнута / вызвана?
- [B] inding - как можно вызвать службу (протокол, настройки, безопасность и т. Д.)?
- [C] ontract - что сервис предлагает по этому адресу, какие методы выставляются?