2009-04-02 2 views
6

Я создаю службу WCF, которая откроет привязки BasicHttp и NetTcp. Я также добавил два соответствующих Mex конечных точек, т.е.WCF Mex End Points for Multiple Bindings

<service name="WCFTest.CalculatorService" behaviorConfiguration="WCFTest.CalculatorBehavior"> 
    <host> 
    <baseAddresses> 
     <add baseAddress = "http://localhost:8000/WCFTest/CalculatorService/" /> 
     <add baseAddress = "net.tcp://localhost:9000/WCFTest/CalculatorService/" /> 
    </baseAddresses> 
    </host> 

    <endpoint address ="basicHttpEP" binding="basicHttpBinding" contract="WCFTest.ICalculatorService"/> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 

    <endpoint address ="netTcpEP" binding="netTcpBinding" contract="WCFTest.ICalculatorService"/> 
    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>   
</service> 

ли мне действительно нужно добавить конечную точку NetTcp Mex, а также в качестве конечной точки BasicHttp Mex? Будут ли клиенты не всегда использовать конечную точку Http mex для обособленности метаданных независимо от того, будут ли они общаться с помощью tcp или нет?

Благодаря

ответ

1

Да, вы можете использовать только HTTP MEX конечной точки. Я думаю, что предполагается, что ваш клиент может общаться через HTTP.

+0

Вы хотели сказать: «Я думаю, что предполагается, что ваш клиент * будет только * передавать через HTTP, а не net.tcp для mex» или что-то в этом отношении, поскольку вы рекомендовали использовать только конечную точку http mex? – atconway

+0

Исправлено сообщение –

1

Нет, в вашем коде предполагается, что канал связи может быть либо http, либо net tcp.

Если вы не объявляете об этом, это означает, что вы запрещаете службе/клиенту связываться только с одним связыванием.