WCF消息过滤

时间:2011-12-12 14:01:49

标签: .net wcf logging soap diagnostics

启用消息记录后,我可以看到它们,但需要过滤:

<MessageLogTraceRecord>
<Addressing>
    <Action>http://myuri/IManager/getData</Action>
    <To>http://localhost/MyService.svc</To>
</Addressing>

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <getData xmlns="http://myuri/IManager">
              ............
        </getData>
    </s:Body>
</s:Envelope>
</MessageLogTraceRecord>

以上是我通过http调用Java Web服务时在日志中看到的内容。请注意,没有SOAP标头,因此我无法按照the sample from MSDN中的操作名称进行过滤。但是,禁止身体过滤。好的,我尝试了这些XPath表达式(以及许多其他表达式):

<filters>
    <add>/Addressing/Action[contains(text(), "http://myuri/IManager/getData")]</add>
    <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope">/soap:Envelope[not(soap:Header)]</add>
<filters>

但是仍然记录了所有消息(WCF认为它很糟糕并被删除了吗?)。问题是:

  1. 为什么没有SOAP标头(通过net.tcp传输的其余消息都有)?
  2. 如何编写XPath以仅过滤getData个调用?

0 个答案:

没有答案