我正在对 SOAP WCF 消息的消息加密进行故障排除。
使用 Fiddler,我可以查看原始消息,以及 SOAP 正文中的 CipherData/CipherValue XML 元素。
我已使用以下配置配置消息日志记录:
<diagnostics wmiProviderEnabled="true">
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="3000"
maxSizeOfMessageToLog="100000"/>
</diagnostics>
现在,当我打开生成的日志 XML 文件时,我只能看到未加密的 SOAP 消息,无法找到 CipherData/CipherValue 元素。
看起来 WCF 日志记录是在堆栈中消息尚未加密的位置完成的。
有没有办法配置 WCF 日志记录,以便我可以在加密后查看消息?
顺便说一句,我之所以想在 WCF 跟踪文件中查看消息的加密版本,是因为我无法使用 Fiddler 在生产环境中进行故障排除。
最佳答案
像这样设置您的system.diagnostics
配置。
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net" tracemode="includehex" maxdatasize="1024">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
<sharedListeners>
<add name="System.Net" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log"/>
</sharedListeners>
<trace autoflush="true"/>
</system.diagnostics>
</configuration>
这应该会给你更多细节。欲了解更多信息,请参阅this
关于.net - 如何使用 WCF 跟踪查看器查看在线发送的原始 SOAP 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31988310/