WSDualHttpBinding、NetTcpBinding、および NetPeerTcpBinding バインディングはすべて、二重/コールバック サービス操作をサポートしていることを知っています。
ajax呼び出しで二重化が何らかの形でサポートされているかどうかを尋ねる人さえ、インターネット上のどこにも見つかりません。おそらく、これについて何かを見つけることができない理由は、質問を最もばかげた質問にする重要なWCFの概念を完全に誤解しているためです...
webHttpBinding バインディングは、<enableWebScript/>
クライアント側のプロキシ オブジェクトに必要な js を生成することを知っています。
二重サービスはそのコールバックサービスをホストする必要があり、クライアント側でそれを行う方法がないため、これは不可能ですか? (それが理にかなっていれば..)
私のアプリは次のように階層化されています。
1. WebSite1 - WebSite1.MyClientService への ajax 呼び出し。
2. WebSite1.MyClientService - MyServiceProxies DLL を参照する WCF セルフホステッド サービス。
3. MyServiceProxies DLL - ClientBase から継承するカスタム プロキシ (「サービス参照の追加」自動生成プロキシの代わりに使用)。これは、実際のサービス呼び出しを [MyService : WinService WCF Host EXE の IMyService] で base.Channel.OperationName() に委任するだけです。
4. WinService WCF Host EXE - これは Windows サービスとして、シングルトンとして実行され、マルチスレッド呼び出しを可能にします。WebSite1 からの呼び出しは、このシングルトンが保持するメモリ内の値を照会します。このシングルトンは最終的に、メモリ内に保持されているすべてのデータを別のデータ層を介してデータベースにコミットします。
WinService は、net.tcp を介した二重呼び出しを使用するように構成されています。WinService は、WebSite1 IIS アプリと同じマシンで実行されます。