WCF - 检查正在发送/接收的消息?

标签 wcf soap client-server fiddler

我有两个解决方案: - 服务器解决方案 - 客户端解决方案

服务器将自身注册到我的本地主机 IIS:http://localhost/MyApp/

客户端从本地主机应用程序添加 WCF 服务(服务引用):http://localhost/MyApp/MyService.svc

当我运行客户端时,我希望能够看到来回传递的消息。我下载了 Fiddler,但它似乎不想向我显示任何正在发送的流量,除非我实际使用网络浏览器。我是否使用了 Fiddler 错误,或者我应该使用其他工具吗?

<小时/>

澄清一下,我想做的是查看传入的实际消息。除了用我自己的眼睛直观地看到它们之外,我不想对它们做任何事情。

我喜欢 WCF 服务日志实用程序,但我认为我在那里的设置不正确。我看不到实际的 SOAP 消息,只是收到了一条消息。

还要进一步澄清的是,我不在乎使用什么工具,只要我可以轻松地看到消息本身即可。

最佳答案

要查看消息内容,您必须在配置文件中添加 System.ServiceModel.MessageLogging 的源。跟踪查看器中的消息选项卡将显示特定服务调用的完整消息。

这是一个示例配置文件:

<configuration>

...

   <system.diagnostics>
      <sources>
         <source name="System.ServiceModel"
                      switchValue="All"
                      propagateActivity="true">
            <listeners>
               <add name="traceListener" />
            </listeners>
         </source>
         <source name="System.ServiceModel.MessageLogging"
                      switchValue="All">
            <listeners>
               <add name="traceListener" />
            </listeners>
         </source>
      </sources>
      <sharedListeners>
         <add name="traceListener"
                 type="System.Diagnostics.XmlWriterTraceListener"
                 initializeData="c:\Traces.svclog" />
      </sharedListeners>
   </system.diagnostics>

   <system.serviceModel>
   <diagnostics>
      <messageLogging logEntireMessage="true"
                                  logMalformedMessages="true"
                                  logMessagesAtServiceLevel="true"
                                  logMessagesAtTransportLevel="true"
                                  maxMessagesToLog="500"/>
   </diagnostics>

...

</system.serviceModel>

...

</configuration>

有关详细信息,请参阅 MSDN 上的配置跟踪主题。 http://msdn.microsoft.com/en-us/library/ms733025.aspx

关于WCF - 检查正在发送/接收的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215882/

相关文章:

wcf - 使用 SSL 和 WCF 自托管 - 无法将证书绑定(bind)到端口

grails - Grails和CXF插件WSDL的第一个方法示例?

java - java中如何获取客户端socket程序中的客户端端口和IP地址

python - 在此 Python 3 客户端-服务器示例中,客户端不能发送多条消息

c# - 在没有 IOC 的情况下管理 wcf 服务中的 DbContext 范围?

WCF 序列化单元测试和此 XmlWriter 不支持 base64 编码数据。我应该使用什么 Writer?

c++ - 使用 axis2c 开发 Web 服务时如何访问轴骨架代码中的服务参数?

java - 如何使用 Apache CXF 表示没有时区的日期?

java - 使用 UnetSocket 在 unetstack 中创建客户端和服务器节点之间的通信

c# - WCF REST 服务控制台主机