ServiceModel.Routing上的默认服务行为是什么?

时间:2015-01-05 17:58:42

标签: c# wcf wcf-routing

ServiceModel.Routing上的默认服务行为是什么?

我不是在讨论Azure的东西,我的意思是这些接口来自

System.ServiceModel.Routing

  • IDuplexSessionRouter
  • IRequestReplyRouter
  • ISimplexDatagramRouter
  • ISimplexSessionRouter

我理解在正在进行工作的实际服务端点上为所需的上下文选择正确的“绑定”,....

(例如,此路由器(hand-rolled-service_bus)实际将路由(通过EndPointName)消息发送到的服务)

(当然会有一些服务,将来根据所提供的呼叫者路由--- EndPointName ---到各种服务)

...但是这些路由“契约”处理并发和实例模式如何在这个实现一个或多个System.ServiceModel.Routing命名空间接口的中间层路由服务处理?

我是否在考虑这些并且这些路由合同(接口)只是传递消息?当我输入这个时,我想知道我是否应该实际创建一个继承所需路由接口/契约的类并尝试手动应用我想要的服务行为,就像一个普通 WCF接口... < / p>

所有示例都只是“使用”这些路由接口,而不是创建一个实现其中一个的类,并在此后处理服务行为。

1 个答案:

答案 0 :(得分:0)

&#34;路由服务&#34;只是根据路由表将消息传递到目标服务。

根据System.ServiceModel.Routing.dll, v4.0.0.0程序集,界面定义为 InstanceContextMode = InstanceContextMode.PerSession定义如下:

namespace System.ServiceModel.Routing
{
    // Summary:
    //     Defines the routing service, which is responsible for routing messages between
    //     endpoints based on filter criteria.
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any, InstanceContextMode = InstanceContextMode.PerSession, UseSynchronizationContext = false, ValidateMustUnderstand = false)]
    public sealed class RoutingService : ISimplexDatagramRouter, ISimplexSessionRouter, IRequestReplyRouter, IDuplexSessionRouter, IDisposable
    {
    }
}