【问题标题】:How to configure NServiceBus endpoints when exposing more than one method in WCF service contract在 WCF 服务合同中公开多个方法时如何配置 NServiceBus 端点
【发布时间】:2015-03-19 10:44:05
【问题描述】:

我正在研究 NServiceBus 与 Wcf 示例的集成:

WcfIntegration sample on github

我想用第二种方法扩展 ICancelOrderService,如下所示:

 [ServiceContract]
public interface ICancelOrderService
{
    [OperationContract]
    ErrorCodes Process(CancelOrder request);
    [OperationContract]
    ErrorCodes ProcessAnotherMessage(PlaceOrder request);
}

据我了解,我应该添加从 WcfService 继承的新服务

public class PlaceOrderService : WcfService<CancelOrder, ErrorCodes>
{
}

以及对应的PlaceOrderHandler:

public class PlaceOrderHandler : IHandleMessages<PlaceOrder>
{
    private readonly IBus bus;

    public PlaceOrderHandler(IBus bus)
    {
        this.bus = bus;
    }

    public void Handle(PlaceOrder message)
    {
        Console.WriteLine("===========PLACE ORDER message============");

        if (message.OrderId % 2 == 0)
            bus.Return((int)ErrorCodes.Fail);
        else
            bus.Return((int)ErrorCodes.None);
    }
}

服务器的 app.config 包含以下配置:

<services>
  <service name="Server.WebServices.CancelOrderService" behaviorConfiguration="Default">
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:9009/services/cancelOrder" />
      </baseAddresses>
    </host>
  </service>
</services>

问题:

  1. 如何为第二个 PlaceOrderService 配置 app.config?
  2. 似乎 NServiceBus 忽略了服务合同(Process 或 ProcessAnotherMessage)中的方法名称 - 我没有看到方法名称的任何使用,只是使用了 TRequest/TResponse 类型参数:

    CancelOrderService : WcfServiceCancelOrder, ErrorCodes>

我认为这太过分了——我要发送的每个新方法/消息都创建新的 WcfService 类型、处理程序并配置 app.config。我错过了什么吗?

【问题讨论】:

标签: c# wcf nservicebus


【解决方案1】:

可以使用 VS 工具 - wcf 配置工具设置第二个端点的配置:右键单击 app.config -> 编辑 wcf 配置 -> 创建新服务并按照向导步骤设置新端点。

还有this video (WCF using C#: Building your first WCF application) 可能很有用(端点在 30-35 分钟内设置)

【讨论】:

    猜你喜欢
    • 2012-06-17
    • 2012-11-24
    • 1970-01-01
    • 2011-09-19
    • 2011-03-03
    • 1970-01-01
    • 2023-03-11
    • 2010-12-24
    • 1970-01-01
    相关资源
    最近更新 更多