我是WCF的新手。以下是关于WCF的问题。
假设我的服务定义如下。
主持人有两个地址。我经常点击基地址http:// ....来生成代理。
这是我的配置:
<service name="XXX.RRR.Common.ServiceLayer.MySL" behaviorConfiguration="returnFaults">
<endpoint
behaviorConfiguration="LargeEndpointBehavior"
binding="netTcpBinding" bindingConfiguration="MessagingBinding"
contract="XXX.RRR.Common.ServiceLayer.IMySL" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:86/XXX/RRR/ManagerService" />
<add baseAddress="http://localhost:76/XXX/RRR/ManagerService" />
</baseAddresses>
</host>
</service>
由于 Lijo
答案 0 :(得分:0)
你的问题到底是什么?从您的配置中,我发现您没有在服务端点上定义任何地址 - 您需要提供一个!
<service name="XXX.RRR.Common.ServiceLayer.MySL" behaviorConfiguration="returnFaults">
<endpoint
address=""
behaviorConfiguration="LargeEndpointBehavior"
binding="netTcpBinding" bindingConfiguration="MessagingBinding"
contract="XXX.RRR.Common.ServiceLayer.IMySL" />
当您使用http地址创建针对此服务的客户端代理时,则是,客户端配置将具有http端点作为其地址 - 类似于:
<client>
<endpoint name="Default"
address="http://localhost:76/XXX/RRR/ManagerService"
binding="basicHttpBinding"
contract="XXX.RRR.Common.ServiceLayer.IMySL" />
</client>
您只需手动将第二个端点添加到配置中 - 或者使用Visual Studio中的Wcf Configuration Tool来执行此操作! - 像这样:
<client>
<endpoint name="Default"
address="http://localhost:76/XXX/RRR/ManagerService"
binding="basicHttpBinding"
contract="XXX.RRR.Common.ServiceLayer.IMySL" />
<endpoint name="TCP"
address="net.tcp://localhost:86/XXX/RRR/ManagerService"
binding="netTcpBinding"
contract="XXX.RRR.Common.ServiceLayer.IMySL" />
</client>
但是,使用服务端的当前配置,您只在服务器上公开一个netTcp端点 - 因此您甚至无法使用HTTP连接到服务器来创建客户端代理... ..