2

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 アプリと同じマシンで実行されます。

4

1 に答える 1

2

ajax呼び出しで二重化が何らかの形でサポートされているかどうかを尋ねる人さえ、インターネット上のどこにも見つかりません。おそらく、これについて何も見つけられない理由は、質問を最もばかげた質問にする重要なWCFの概念を完全に誤解しているためです...

おそらく、あなたが理解していないのはAJAXであり、WCFではないと思うからです。

AJAX で二重コントラクトを使用することは、あまり意味がありません。二重コントラクトは、サーバーがいつでもコントラクト操作を呼び出すことを期待する必要があります。たとえば、パブリッシュ/サブスクライブや、メッセージの到着を開始する前にクライアントによるアクションが必要な応答の要請とは異なります。二重契約では、メッセージはいつでも届く可能性があります。

誰が彼らに耳を傾けますか?ブラウザではありません。ブラウザが、リモート マシンから着信し、コードを実行している一方的なメッセージに反応するとしたら、それはウイルスの定義のように聞こえますね。

JavaScript で双方向コントラクトがサポートされるのは、しばらく先になると思います。

于 2009-07-06T23:41:50.760 に答える