0

webHttpBindingを使用してWCFを介して公開されるRESTfulサービスがあります。

TCPヘッダー(具体的にはパケットTTL)を取得するように求められます。難しいアプローチは、net.tcpバインディングに切り替えて、すべてのHTTPレイヤーを自分で処理することです。

もっと簡単な方法があるはずです...助けてください!

4

1 に答える 1

0

お気づきのように、WCF はバインドの概念 (netTcpBinding、basicHttpBinding、...) を実装することにより、メッセージ トランスポート (TCP、HTTP、...) を抽象化します。利点は、(ほとんどの場合) サービス コードに影響を与えることなくバインディングを簡単に変更できることです。この容易さのトレードオフは、トランスポートの詳細をサービス コードから隠すことです。実際、WCF でクライアント IP アドレスを取得するのはかなり困難です。

一方、WCF は非常に拡張性が高いため、webHttpBinding をカスタム バインドとして "再実装" できるため、必要な TCP 情報をバブルアップできます。このSO の質問と回答は、カスタム バインディングの開始点となりますが、TCP の詳細にアクセスするには、カスタム HTTP トランスポート コンポーネントを作成する必要がある可能性があります。ツールのせいでこれだけの作業が必要になる場合は、間違ったツールを使用している可能性が高くなります。言ってるだけ' ... :)

于 2013-02-19T13:32:37.003 に答える