我有一个WCF服务(在3.0中),使用wsHttpBinding正常运行。我想将netTcpBinding绑定也添加到同一个服务。但我面临的挑战是添加behaviorConfiguration。
如何修改以下代码以启用绑定服务?请帮忙......
<service name="Lijo.Samples.WeatherService"
behaviorConfiguration="WeatherServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/FreeServiceWorld"/>
<add baseAddress="net.tcp://localhost:8052/ServiceModelSamples/FreeServiceWorld"/>
<!-- added new baseaddress for TCP-->
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
contract="Lijo.Samples.IWeather" />
<endpoint address=""
binding="netTcpBinding"
contract="Lijo.Samples.IWeather" />
<!-- added new end point-->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WeatherServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
请参阅以下内容以了解更多详情 WCF using windows service
谢谢
Lijo
答案 0 :(得分:1)
我不完全明白你的问题是什么 - 从我的理解来看,你不确定如何应用服务行为?
您需要考虑两件事:
服务行为可以应用于整个<service>
代码 - 因此元数据支持等内容会影响服务本身 - 无论您连接哪个端点至
可以将端点行为应用于端点,这样只影响应用此行为的端点(而不是其他端点)
因此,在您的情况下,WeatherServiceBehavior
将应用于服务,从而影响所有端点(例如,无论客户端连接到哪个端点,它都将关闭元数据支持和调试详细信息)。
再说一遍:你的问题究竟是什么?你在哪里被“封锁”或者你想做什么不起作用?
答案 1 :(得分:0)
您应该在端点级别指定net tcp端点的地址,而不是基地址。
在尝试为两者配置之前,还要首先测试是否只使用nettcp绑定以确保它有效。