0

ServiceModel.Routing のデフォルトのサービス動作は何ですか?

私はAzureのものについて話しているのではなく、これらのインターフェイスを意味します

System.ServiceModel.Routing

  • IDuplexSessionRouter
  • IRequestReplyRouter
  • ISimplexDatagramRouter
  • ISimplexSessionRouter

作業を行っている実際のサービス エンドポイントで、目的のコンテキストの正しい「バインディング」を選択することについて理解しています....

(つまり、このルーター (hand-rolled-service_bus) が実際に(EndPointName によって)メッセージをルーティングしようとしているサービス)

(もちろん、将来的には、指定された呼び出し元 ---EndPointName--- によってさまざまなサービスにルーティングされるいくつかのサービスがあります)

...しかし、これらの System.ServiceModel.Routing Namespace Interfaces の 1 つ以上を実装する この中間層のルーティング サービスで、これらのルーティング「コントラクト」によって同時実行モードとインスタンス モードがどのように処理されるのでしょうか?!

私はこれを考えすぎていて、これらのルーティング コントラクト (インターフェイス) はメッセージを通過させるだけですか? これを入力すると、目的のルーティング インターフェイス/コントラクトを継承するクラスを実際に作成し、通常のWCF インターフェイスのように、目的のサービス動作を手動で適用する必要があるのではないかと思います...

すべての例は、これらのルーティング インターフェイスを「使用」しているだけであり、それらのいずれかを実装するクラスを作成せず、その後サービスの動作を追加しています。

4

1 に答える 1

0

「ルーティング サービス」は、ルーティング テーブルに基づいてターゲット サービスにメッセージを渡すだけです。

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
    {
    }
}
于 2015-01-05T21:10:44.383 に答える