【问题标题】:Log WCF Service Calls with Parameter information使用参数信息记录 WCF 服务调用
【发布时间】:2009-07-24 14:59:57
【问题描述】:

我一直在使用服务跟踪查看器来分析在我们的应用程序中进行的 WCF 服务调用,但我真的需要查看传递给服务方法的参数值吗?这可能吗?我已经尝试将日志记录设置为最大输出,但仍然看不到任何内容:(

【问题讨论】:

    标签: .net wcf logging


    【解决方案1】:

    如果您启用消息跟踪,您应该获得呼叫的所有详细信息(包括发出的消息的 XML 表示形式)以及答案:

    <system.diagnostics >
      <sources>
        <source  
            name="System.ServiceModel.MessageLogging" 
            switchValue="Information, ActivityTracing" >
           <listeners>
              <add name="yourTrace" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData="C:\Logs\YourMessageLog.svclog">
                 <filter type="" />
               </add>
           </listeners>
         </source>
      </sources>
      <trace autoflush="true" />
    </system.diagnostics>
    <system.serviceModel>
       <diagnostics>
           <messageLogging 
                 logMessagesAtTransportLevel="true" 
                 logMessagesAtServiceLevel="false"
                 logMalformedMessages="true" 
                 logEntireMessage="true"
                 maxSizeOfMessageToLog="65535000" maxMessagesToLog="500" />
        </diagnostics>
    </system.serviceModel>
    

    这应该在目录“C:\Logs”(必须事先存在!)中创建一个名为“YourMessageLog.svclog”的文件,您可以使用 WCF 服务跟踪查看器查看该文件。

    您将在这里看到的是 XML 表示 消息发出和响应返回 - 您的参数将被包装到您的 XML 结构中。这就是你要找的东西吗?

    【讨论】:

    • 我之前曾尝试过以这种方式设置消息记录,但是是在服务器而不是客户端上进行的,所以它没有按我的预期工作。为我指出正确的方向干杯:)
    • 监听器的类型应该是 System.Diagnostics.XmlWriterTraceListener
    • 嗨,我正在使用我的 WCF 服务 DataContract 和一个获取 int 的函数。请我需要在跟踪查看器上查看传递给 WCF 服务的参数,我只能看到身体呢??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多