我是wcf的新手,面临着一些我在网上找不到或被误解的问题。
<service name="Columba.Services.DataConnector.DataConnectorManager" behaviorConfiguration="ServiceBehavior">
<endpoint address="net.tcp://localhost:8888/IDataConnectorManager/" binding="netTcpBinding" contract="Columba.Services.Common.Contracts.DataConnector.IDataConnectorManager">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="net.msmq://./private/columba/IQueueItems" binding="netMsmqBinding" bindingConfiguration="MSMQBinding" contract="Columba.Services.Common.Contracts.Delivery.IQueueItems" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>我试图实现的是将第二个端点的behaviorConfiguration="ServiceBehavior“更改为不同的behaviorConfiguration (位于serviceBehaviors标记)。有没有可能实现这样的功能?!
新的行为是配置serviceCredentials服务证书,但只有第二个端点需要它。
提前谢谢各位。
发布于 2016-02-15 20:06:41
从父级创建新的接口和类:
interface IDataConnectorManager2 : IDataConnectorManager
{}
public class DataConnectorManager2: DataConnectorManager, IDataConnectorManager2 {}然后在config中使用新创建的类/接口和其他行为创建第二个服务:
<service name = "DataConnectorManager" behaviorConfiguration="behavior1">
<endpoint address="endpoint1">
<service>
<service name = "DataConnectorManager2" behaviorConfiguration="behavior2">
<endpoint address="endpoint2">
<service>发布于 2016-02-15 19:51:51
简而言之,无服务行为仅在服务级别运行。
但是,您可以通过创建从BehaviorExtensionElement派生的行为类并实现IEndpointBehavior来实现端点级别的行为,如here所述。
https://stackoverflow.com/questions/35408267
复制相似问题