3

一方向の通話、コールバック、およびイベントについて知っておくべきことの記事では、次のように説明しています。

クライアントが呼び出しの結果を気にしないという事実は、呼び出しが行われたかどうかをクライアントがまったく気にしないという意味ではありません。一般に、一方向の通話であっても、サービスの信頼性をオンにする必要があります

信頼性を有効にする方法を見つけようとしましたが、意味のあるものは見つかりませんでした。

手伝っていただけませんか:

  1. 信頼性を有効にする方法
  2. 一方向メソッドがサーバーに到達したかどうかを確認する方法は?

どうもありがとう!

4

3 に答える 3

2

リンクされた記事の著者であるJuval Lowyによる「 Programming WCF Services 」で説明されているメッセージの信頼性を意味していると仮定します(したがって、その引用は本にも一言一句表示されます)。

信頼性は、特定のバインディングでのみ有効です。この TCP バインディングの例を見てみましょう。構成ファイルで:

<binding>
    <netTcpBinding>
        <binding name="MyTcpBinding">
            <reliableSession enabled="true" />
        </binding>
    </netTcpBinding>
</binding>

信頼性を確認するために、本 (p. 66) を引用します。

メッセージの信頼性は、メッセージの配信を保証するものではありません。それが提供するのは、メッセージが宛先に届かない場合に、送信者がそのことを知るという保証だけです。

送信者がどのように知っているかはわかりませんが、遭遇したことはありませんが、トピックをより深く調査するための洞察が得られることを願っています.

参考文献:

http://msdn.microsoft.com/en-us/library/ms733136.aspx

于 2011-03-15T21:26:31.793 に答える
0

@Budda: そうです、すべてのメッセージをサーバーに送信した直後に応答または確認を待つ必要はありません。それは同期操作になります。非同期操作を使用すると思います。メッセージが送信され、しばらくしてサーバーから確認応答が到着したとき、またはソケットが送信に失敗したことを通知したとき、「コールバック」関数で制御を取得してエラーについて通知します。 、メッセージをキューから取り出します。そうすれば、当然のことながら心配している大きな問題を回避できます。しかし、混乱を招く可能性のある答えに飛びついたので、質問全体が wcf に関連していることがわかります。これは、今まで聞いたことのないものです。だから、私が水を濁らせたなら、私は謝罪します. おそらく、wcf には非同期通信があります。一般的に、私はそう思うだろう」可能であれば行く方法です。それが「一方向通信」の意味なのかもしれません。

于 2011-03-15T21:58:30.180 に答える
0

通常、OneWay 操作と信頼性が必要な場合は、キュー ベースのメカニズムを構築しているという良い兆候です。クライアントはメッセージをキューに入れ、ワーカーはメッセージを選択して処理します。

MSMQ を見て、それが役立つかどうかを確認してください。

ほとんどの場合、OneWay 操作は重要なタスクや情報を運ぶべきではありません。サーバーによる処理が本質的に保証されていないためです。メッセージがサービス側のディスパッチャーによってルーティングされると、クライアント側で OneWay 呼び出しが返されます。ディスパッチャーの後は、信頼性がまったくありません。

于 2011-03-17T20:31:13.753 に答える