有没有办法让来自客户端的每个调用都挂钩到WCF服务
以便例如这些点可以添加到延迟测量中。如果这是特定于我们正在使用的net.tcp
,那就没关系。
我想添加一个IDispatchMessageInspector
可以让我在反序列化请求之前挂入 (虽然在创建Message object
之后,我想要甚至在那之前挂钩),但在响应序列化之后不是 。
答案 0 :(得分:1)
要在反序列化请求之前挂钩 ,我正在包裹MessageEncoder
(我还必须包裹MessageEncoderFactory
和MessageEncodingBindingElement
)
然后我可以挂钩MessageEncoder.ReadMessage()
重载。
IOutputChannel
(我还必须包装IChannelListener
和TcpTransportBindingElement
),
然后我可以加入IOutputChannel.Send()
/ IOutputChannelEndSend()
重载。
它和我一样接近电线,并且足够接近我。
答案 1 :(得分:0)
如果您要求的唯一事情是捕获在调用给定服务时发送/接收的消息,您可以使用以下链接中的建议:
https://msdn.microsoft.com/en-us/library/ms735120(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/aa702726(v=vs.110).aspx
这将允许您以Xml。
将所有正在发送和接收的消息捕获到磁盘