2

私は HttpListener と HttpContexts を使用しています。応答を記述するときに、それが適切に送信されたかどうかを判断できることはわかっていますが、クライアントがそれを受信したかどうかはどうすればわかりますか?

サーバーとクライアントの間にある種のメッセージ確認システムを設定できると思いますが、これを透過的に行うことができるものがあるかどうか疑問に思っています。

WCF を使用した同様の質問への回答は ReliableSessions を参照していますが、WCF をアプリケーションに組み込む価値があるかどうかはわかりません。私は WCF にあまり詳しくありませんが、従来の Web サーバーの要求/応答モデルに合わせて調整されておらず、分散システム タイプのものに対応しているように思えます (これは、信頼できるセッションなので、間違っている場合は修正してください)。

ありがとう!

4

2 に答える 2

2

「サーバーとクライアントの間にある種のメッセージ確認システムを設定できると思います」. 私はあなたがしなければならないのではないかと心配しています。私の知る限り、HTTPには「ネイティブ」の確認方法はありません。

于 2012-07-17T23:01:22.490 に答える
1

サーバーでは、Response.Flush を呼び出して、現在バッファリングされているすべてのデータ (およびヘッダー) を同期的にクライアントに送信できます。呼び出しが終了すると、データが TCP スタックに渡されたことがわかります。

ASP.NET には、TCP バッファが確実にフラッシュされるようにする方法がありません。たとえそれがあったとしても、クライアントが応答を受信したが、ネットワークが確認応答を飲み込んだというあいまいなケースが存在する可能性があります.

これは将軍問題であり、解決できません。

この時点で、意図の詳細を提供する必要があります。前述のように、完全な解決策はないからです。

于 2012-07-17T23:05:05.947 に答える