我有一个RESTful服务,它通过WCF与webHttpBinding公开。
我现在被要求获取TCP标头(特别是数据包TTL)。困难的方法是切换到net.tcp绑定并自己处理所有HTTP层。
必须有一个更简单的方法......请帮助!
答案 0 :(得分:0)
正如您所知,WCF通过实现绑定概念(netTcpBinding,basicHttpBinding,...)来抽象消息传输(TCP,HTTP,...)。好处是能够轻松(大多数时间)更改绑定而不影响服务代码。这种轻松的折衷是隐藏服务代码中的传输细节。实际上,在WCF中获取客户端IP地址相当困难。
另一方面,WCF是如此可扩展,您可以“重新实现”webHttpBinding作为自定义绑定,以便您可以冒泡您想要的TCP信息。这个SO question & answer将为您提供自定义绑定的开始,但您可能需要创建自定义HTTP传输组件来访问TCP详细信息。当一个工具让你努力工作时,很有可能你使用了错误的工具。只是说'... :)