0

I have a RESTful service which is exposed via WCF with the webHttpBinding.

I am now asked to get the TCP header (specifically the packet TTL). The difficult approach will be to switch to the net.tcp binding and handle all the HTTP layer by myself.

There must be an easier way... Please help!

4

1 回答 1

0

正如您所发现的,WCF 通过实现绑定概念(netTcpBinding、basicHttpBinding...)来抽象消息传输(TCP、HTTP...)。好处是能够轻松(大部分时间)更改绑定而不影响服务代码。这种简单的权衡是从服务代码中隐藏传输细节。事实上,在 WCF 中获取客户端 IP 地址相当困难。

另一方面,WCF 的可扩展性非常强,您可以将 webHttpBinding 作为自定义绑定“重新实现”,这样您就可以获取所需的 TCP 信息。这个SO question & answer将为您提供自定义绑定的开始,但您可能需要创建自定义 HTTP 传输组件来访问 TCP 详细信息。当一个工具让你如此努力工作时,你很有可能使用了错误的工具。只是在说' ... :)

于 2013-02-19T13:32:37.003 回答