Windowsサービスで複数のWCFサービスをホストしています。これらのWCFサービスの1つは、同じWindowsサービスでホストされている別のWCFサービスを呼び出す必要があります。これは、同じマシンまたは別のマシンにインストールされた同じWindowsサービスで実行する必要があります。自分自身への参照を追加するにはアプリケーションが必要ですか、それとも独自のサービスを呼び出すための簡単な方法がありますか?私は、エンドポイントアドレスを変更することによって異なるマシンビットを行う方法を知っていますが、自分自身への参照を追加するべきかどうかについてあまり明確ではありません。つまり、別のクライアントから使用するのと同じコードを使用する必要があります。.NETサービスホストが独自のサービスを呼び出す
答えて
ここでの概念は「位置透明性」と呼ばれます。つまり、同じプロセスまたは別のマシンで稼働する(WCF)サービスを呼び出す際に(技術的な)違いはありません。
一般的には、ニーズ(安定性や個々のサービスのリソース消費)に応じて、展開後または展開中にサービスの場所を変更できるため、これは良いことです。
Named Pipe Bindingを設定することで、同じマシン上で実行していることを最適化することができます。実際の作業と実際の作業の実行時間によって異なります。適切なバインディングの選択に関する詳細は/ hereを参照してください)。
最後に、それ本当に問題ならば、あなたはおそらく事実を利用して、あなたのown bindingを作成することができ、同じプロセス内の両方のサービスの人生 - 最も可能性が高いではない簡単な仕事。
しかし、実際のサービス実装が使用されているトランスポートまたはバインディングに依存しないようにして、場所の透過性を保持する必要があります。
WCFサービスにアクセスする場合は、処理中であるかどうかにかかわらず、プロキシを生成することは良いアイデアであり、簡単な方法です。
ChannelFactory
を使用してサービスにChannel
を直接作成することはできますが、これは必須ではありません。しかし、できる場合は、なぜそれのためのプロキシを生成しないでください?
新しいキーワードでサービスの新しいインスタンスを作成できます(サービスの具体的な実装をターゲットにしています - もちろんインターフェイスではありません)。私はこれを常に行い、それはうまく動作します。 また、プロジェクトは自分自身への参照を追加することも、スペース時間の連続でリッピングを引き起こすこともできません)。
これはもちろん、トランザクション、セキュリティなどのためのWCFのインフラストラクチャを迂回します。OPの状況には問題はありませんが、一般的には「悪いアイデア」と考えています。 –
質問が提起された状況を考えて、私はOPが高レベルのアプリケーション(嫌なOPはない)を開発していると仮定していないので、彼を助け、地獄を混乱させないようにするための提案をしました。 また、呼び出しが同じプロセス内にあるという事実は、ここでのセキュリティは問題ではないことを示唆しました。 「すべての母親」の解決策がすべての問題に存在することを覚えておいてください。それらは常に適用可能ではありません:) –
- 1. .NET Webサービスを呼び出すColdFusionコード
- 2. ディスパッチロボットが独自のコマンドを呼び出す方法
- 3. インラインCアセンブリが独自の変数を呼び出す
- 4. .net 3.5 WindowsサービスからWebサービスを呼び出す
- 5. 独自のクラスでインタフェースメソッドを呼び出す方法は?
- 6. 独自のコンストラクタ内でthread.start()を呼び出す
- 7. prototype.js Ajax.PeriodicalUpdater独自の関数を呼び出す
- 8. Cで独自のイベントコードとカスタムイベントコードを呼び出す
- 9. 独自のjavacriptライブラリを作成して呼び出す
- 10. WebサービスのWebサービスへの呼び出しのスレッド - (.net 2.0)
- 11. VB6から呼び出された.netクラスからのWebサービス呼び出し
- 12. .Net 3.5 WindowsサービスWCFサービスホストを非表示にする
- 13. jQueryの.Net Webサービスを呼び出します。
- 14. .NET Web APIを呼び出す方法Androidでの投稿サービス
- 15. APIを呼び出すAngular4サービスのベストプラクティス.Net Core
- 16. .Netで動的にWebサービスを呼び出す方法
- 17. .NET WindowsサービスからShell32.dllを呼び出す
- 18. .NET 2.0クライアントからWeb APIサービスを呼び出す
- 19. アンドロイドから.NET Webサービスを呼び出す方法は?
- 20. .NET WebサービスからPythonスクリプトを呼び出す
- 21. Webサービスからdatetime関数を呼び出すC#.net
- 22. .NETで作成したWindowsサービスを呼び出す方法は?
- 23. Blackberry Simulatorから.NET Webサービスを呼び出す方法は?
- 24. java 1.4から.NET Webサービスを呼び出す
- 25. Google Webアプリケーションから.Net Webサービスを呼び出す方法は?
- 26. Javaから非同期で.NET Webサービスを呼び出す
- 27. ajaxから.NET Webサービスを呼び出す方法は?
- 28. Webサービスを呼び出す
- 29. Azure関数から独自のDLLを呼び出すと、サポートされている.NET Frameworkのバージョン
- 30. IIS7/.NET Webサービス - あるWebサービスが別のWebサービスを呼び出すとエラーが発生する
ありがとうございます。もともと、自分自身への参照を追加するというコンセプトは奇妙に見えましたが、それは理にかなっていました。 – Jonnster