我是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服务证书,但仅第二端点需要它。

在此先感谢大家。

最佳答案

从父母创建新的界面和课程:

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>

关于c# - 第二个端点的不同“behaviorConfiguration”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35408267/

10-15 10:02