現在、バックグラウンドで実行されている Windows サービスと、ローカルまたはリモート クライアント (通常は 1 ~ 3 のみ) で構成される .NET 4 アプリケーションがあります。
クライアントには WPF GUI があり、Windows サービスからのデータが必要です。そのため、ローカル クライアントには NamedPipe バインディングを使用し、リモート クライアントには NetTcp バインディングを使用して WCF を使用します。これは機能しますが、到達できないエンドポイントで問題が発生することがよくあります (チャネルに障害がある、見つからないなど)。すでに障害のある接続を再構築しようとしていますが、かなり壊れやすいようです...
次に、Web Api に入ります。HTTP ベースのスタックの方が堅牢なようです (チャネルもエンドポイントもありません。Windows サービスでも自己ホストできます)。各リクエストは個別に処理されるため、チャンネルが壊れても問題はないようです。したがって、何かが失敗した場合は、要求を繰り返すだけです。(そして、他のアプリから ASP.NET MVC を使用した経験があるため、これは私たちにとって新しいことではありません)。
今、私たちは最善の策を考えています。既存の WCF サービス (約 15 の操作を含む 1 つのサービス インターフェイス) を "強化" するか、インターフェイスを Web Api に移動して HTTP 要求として (JSON データを使用して) 実行する方がよいでしょうか? ここでの主な問題はパフォーマンスではありません...
何か案は?ハルトムート