2009-12-15 24 views
5

Sono molto nuovo alla messaggistica WCF e SOAP ma sono riuscito a mettere insieme un cliente ragionevolmente buono che sto usando per scaricare notizie da un'organizzazione di media. Ho generato classi proxy che ovviamente si astraggono molto e significano che fondamentalmente sto solo creando oggetti, chiamando metodi e iterando attraverso i risultati.Visualizza richiesta XML non elaborata

Il mio problema è che ho esempi XML grezzi di come dovrebbero apparire le chiamate al servizio web e voglio essere in grado di "confrontarle" con le chiamate che sto facendo. Fondamentalmente ho bisogno di assicurarmi che le chiamate che sto facendo siano le stesse dei file XML di esempio a scopo di test.

Fa quello che sto chiedendo ha senso o sto andando su questo nel modo sbagliato? Per favore fatemi sapere se ci sono informazioni necessarie che ho tralasciato, potrei battermi per paragrafi ma non sono sicuro di quali informazioni siano rilevanti.

risposta

2

È stato utilizzato lo strumento Visualizzatore traccia di servizio di Microsoft? This MSDN page ti fornirà i dettagli su come usarlo.

+0

Grazie per la risposta, slugster. Ho intenzione di dare un'occhiata a questo e posterò come vado. – dave

2

La risposta di riserva per questo è di utilizzare fiddler come un proxy - questo consentirà di visualizzare i messaggi in uscita e in entrata tra il client e il servizio.

non possiamo ancora parlare per esperienza personale, però i membri del team di sviluppo per me (in una vita precedente) hanno - giustamente - codificato i nostri involucri di servizio con il supporto incorporato per l'uso di un proxy esplicitamente per semplificare l'uso di violinista.

+0

Grazie per la risposta. Il problema con l'utilizzo di Fiddler è che si tratta di un servizio Web protetto da SSL, quindi ci sono problemi con il servizio web che non gradiscono il certificato di Fiddler perché si tratta di una CA non riconosciuta. Ho provato a sovrascrivere la convalida del certificato del server, ma c'è qualcosa che accade con il servizio web che non gli piace affatto. La risposta potrebbe essere semplicemente continuare a giocare con questo – dave

+0

Hai provato intestazioni HTTP Live, un plugin di Firefox? Non sono sicuro che supporti CA, ma vale la pena dargli un colpo. –

10

È possibile utilizzare la traccia WCF per registrare i messaggi XML non elaborati. Di seguito è .config permette WCF tracciando con la registrazione dei messaggi crudi:

<configuration> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging maxMessagesToLog="30000" 
       logEntireMessage="true" 
       logMessagesAtServiceLevel="true" 
       logMalformedMessages="true" 
       logMessagesAtTransportLevel="true"> 
     </messageLogging> 
    </diagnostics> 
    </system.serviceModel> 
    <system.diagnostics> 
    <sources> 
     <source name="System.IdentityModel" switchValue="Verbose" logKnownPii="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- Log all messages in the 'Messages' tab of SvcTraceViewer. --> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- ActivityTracing and propogateActivity are used to flesh out the 'Activities' tab in 
      SvcTraceViewer to aid debugging. --> 
     <source name="System.ServiceModel" switchValue="Error, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- This records Microsoft.IdentityModel generated traces, including exceptions thrown 
      from the framework. --> 
     <source name="Microsoft.IdentityModel" switchValue="Warning"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.e2e" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics> 
</configuration> 

Si può leggere di più su WCF Tracing da MSDN: Configuring Tracing.

Microsoft fornisce un Service Trace Viewer Tool per leggere i file .svclog.

Assicurarsi che il percorso definito in initializeData sia scrivibile dal servizio.

0

non so molto di WCF, ma si potrebbe reindirizzare la connessione a un altro server Web sulla rete che ha registrato il corpo da qualche parte. Ciò consentirebbe di vedere esattamente ciò che si sta inviando, ma richiederebbe alcune attività infrastrutturali. Potrebbe trattarsi di un server Web in esecuzione sul tuo computer di sviluppo.

Problemi correlati