WCF呼叫未在Fiddler2中显示

Rob*_*man 10 wcf fiddler

我有一个简单的WCF服务与basicHttp绑定.该服务在IIS7中本地托管(Win7笔记本电脑).我可以在以下位置浏览该服务:http://localhost/musicstore/musicstore.svc (端口80)

我开发了一个简单的Windows窗体客户端应用程序来调用该服务.它工作正常,但我真的希望通过Fiddler2看到消息调用/响应.当我浏览网页时,Fiddler2会愉快地报告流量,所以我无法理解为什么它没有接收这个WCF呼叫?

是否有另一种方法来查看WCF调用的数据.也许有微软工具?

客户端配置是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>

    <client>
      <endpoint address="http://localhost/musicstore/musicstore.svc"
        binding="basicHttpBinding" bindingConfiguration="" contract="MusicStore.IMusicStore"
        name="BasicHttp" />
    </client>
  </system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)

服务配置是:

<services>
   <service behaviorConfiguration="MusicStoreBehavior" name="MusicStore">
    <endpoint address="" binding="basicHttpBinding" contract="IMusicStore">
     <identity>
      <dns value="localhost" />
     </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
   </service>
  </services>
Run Code Online (Sandbox Code Playgroud)

blo*_*art 15

查看WCF正在做什么的最简单方法是打开WCF自己的登录.您可以通过编辑web.config并添加来完成此操作

<system.diagnostics>
  <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
                 <add name="messages"
                 type="System.Diagnostics.XmlWriterTraceListener"
                 initializeData="c:\logs\messages.svclog" />
          </listeners>
      </source>
    </sources>
</system.diagnostics>

<system.serviceModel>
  <diagnostics>
    <messageLogging 
         logEntireMessage="true" 
         logMalformedMessages="false"
         logMessagesAtServiceLevel="true" 
         logMessagesAtTransportLevel="false"
         maxMessagesToLog="3000"
         maxSizeOfMessageToLog="2000"/>
  </diagnostics>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

MSDN提供了有关您可以配置的内容的更多详细信息.您可以在服务跟踪查看器中查看日志.


Eri*_*Law 8

这个问题有很多重复,其中很多都有正确的答案.您应该使用http://localhost.fiddler/作为目标,.NET将正确代理请求.在传递请求之前,Fiddler会将"localhost.fiddler"更改为"localhost".