私はWCFを少し新しくしています。私はすべての 'ビジネスロジック'を行う(シングルインスタンス)メインアプリケーションを作成しました。データベースやサードパーティのAPIに接続し、管理ユーザーコマンドなどを実行します。このアプリケーションはサーバーマシン上で実行されることを意図しています次のステップは、エンドユーザーがWcfクライアントを使用してリモートでコマンドを実行できるように、先頭にWcfServiceLibrary
を作成することです。WCF:メインアプリケーションとは別にWcfServiceLibraryを設計する方法
論理的には、WcfServiceLibrary
はメインアプリケーションアセンブリを参照します。私は素朴だと呼びますが、これは主なアプリケーションのオブジェクトやメソッドにアクセスできると思っていました。さて、これは、WcfServiceLibrary
プロセス内のメインアプリケーションの複製を作成することによって行われます。 (また、WcfServiceLibrary内からアクセスされたときにsingle-instance applicationが複製されていることも発見しました)
この問題を解決するにはどうすればよいですか?
- Self-hostメインアプリケーション内のWCFサービス:これまでのところ私は、次のことを考えています可能性が、私は間で通信する
- 使用IPC技術を「ビジネスロジック」とサービス論理との間に明確な分離を失うことになりますメインアプリケーションと
WcfSrviceLibrary
:これはサーバークライアントインターフェイスの別のレイヤーを作成するため、余計に思えます(アウトオブプロセスCOMを使用している場合を除いて) - 他の方法はありますか?
ご協力いただきありがとうございます。私は、この問題の単純な解決策があると思っています...!
すべてのロジックを別々のアセンブリに抽出し、メインアプリケーションとwcfサービスの両方からこのアセンブリを参照しますか? – Evk
@Evkこのようなアセンブリは、サーバー上で実行されているメインアプリケーションに対して1回、Wcfサービスがインスタンス化されるたびに2回(またはそれ以上)の時間、2回ロードされます。私が必要とするのは、Wcfサービスが内部的に複製せずにメインアプリケーションにアクセスすることです。 – phaedo
サーバーに接続している場合、メインアプリケーションが必要な理由wcfサービスだけを使用するのはなぜですか? – Evk