启用消息记录后,我可以看到它们,但需要过滤:
<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认为它很糟糕并被删除了吗?)。问题是:
getData
个调用?