【发布时间】:2010-10-28 08:04:47
【问题描述】:
我正在使用 WCF 通过网络发送一些 Linq 对象。我想使用消息记录或跟踪来记录消息大小。但是,我不希望或无法使用配置文件进行设置。我正在努力弄清楚如何以编程方式执行此操作。我不在乎这是否发生在客户端主机上。我控制两者。
有人有这方面的经验吗?
【问题讨论】:
我正在使用 WCF 通过网络发送一些 Linq 对象。我想使用消息记录或跟踪来记录消息大小。但是,我不希望或无法使用配置文件进行设置。我正在努力弄清楚如何以编程方式执行此操作。我不在乎这是否发生在客户端主机上。我控制两者。
有人有这方面的经验吗?
【问题讨论】:
不是编程,但也许是:wireshark?
或者,查看message inspectors。不过,我没有关于大小记录的具体示例。
【讨论】:
您还可以使用 Fiddler,如果您使用 wsHttp 或 basicHttp 绑定之一,它可以记录您的 HTTP 消息。 http://www.fiddler2.com/fiddler2/
【讨论】:
Marc 说得对,Message Inspectors 将允许您这样做。创建一个类:实现IDispatchMessageInspector。将提供以下方法,您可以在其中实现代码来操作请求消息。
Public Function AfterReceiveRequest(ByRef request As System.ServiceModel.Channels.Message, ByVal channel As System.ServiceModel.IClientChannel, ByVal instanceContext As System.ServiceModel.InstanceContext) As Object Implements System.ServiceModel.Dispatcher.IDispatchMessageInspector.AfterReceiveRequest
'Output the request message to immediate window
System.Diagnostics.Debug.WriteLine("*** SERVER - RECEIVED REQUEST ***")
System.Diagnostics.Debug.WriteLine(request.ToString())
Return Nothing
End Function
另外,以下Link 也可能提供一些帮助。
祝你好运
【讨论】: