Het vastleggen van de zeepaanvraag/reactie van een webservice

Ik werk aan een SSIS-pakket dat een C# scripttaak gebruikt. Voor debugging en logging wil ik de zeepaanvraag/reactie van de webservice vastleggen.

Dit is iets dat ik nog nooit eerder hoefde te doen en ik zit een beetje vast met waar ik heen moet. Ik gebruik de ingebouwde ondersteuning van .Net voor webservices en de gegenereerde proxyklasse.

Alle hulp hierbij wordt zeer op prijs gesteld.

Hier is mijn huidige code:

public void Main()
{
    try
    {
        DataTable dt = new DataTable();
        OleDbDataAdapter oleDa = new OleDbDataAdapter();
        ArrayList itemArray = new ArrayList();
        ArrayList orderArray = new ArrayList();

        oleDa.Fill(dt, Dts.Variables["User::ZBatch_Order_Export_ResultSet"].Value);

        int i = 0;
        foreach (DataRow row in dt.Rows)
        {
            orderArray.Add(ConstructOrderTransaction(row));
            itemArray.Add(ConstructItemTransaction(row));
            i++;
        }

        ZBatch_PublisherService.ZBatchPublisherServiceService ws = new ZBatchPublisherServiceService();
        ZBatch_PublisherService.bcfItemTransaction[] itemObjects = itemArray.ToArray() as bcfItemTransaction[];
        ZBatch_PublisherService.bcfOrderTransaction[] orderObjects = orderArray.ToArray() as bcfOrderTransaction[];
        ZBatch_PublisherService.zBatchResults results = new zBatchResults();

        results = ws.saveBatch(orderObjects, itemObjects);

        Dts.TaskResult = (int)ScriptResults.Success;
    }
    catch (Exception e)
    {
        Dts.Events.FireError(0, "ZBatch - Script Task", e.Message.ToString(), string.Empty, 0);

       //do some logging of this error message
    }
}
1
Ja, ZBatch_PublisherService.ZBatchPublisherServiceService is gemaakt met Add Reference/Add Server. De basisklasse is System.Web.Services.Protocols.SoapHttpClientProtocol
toegevoegd de auteur Tempname, de bron
ZBatch_PublisherService.ZBatchPublisherServiceService ? Hoe heb je het gemaakt? Webreferentie toevoegen / Service toevoegen ? Wat is de basisklasse?
toegevoegd de auteur L.B, de bron
toegevoegd de auteur L.B, de bron
mogelijk duplicaat van In C#, hoe vang ik de SOAP op die wordt gebruikt in een webservice-oproep?
toegevoegd de auteur John Saunders, de bron

1 antwoord

Voor foutopsporing kunt u Fiddler2 eenvoudig gebruiken om webverkeer vast te leggen, inclusief de volledige xml van een SOAP-aanvraag/reactie (en het verwerkt zelfs SSL eenvoudig, in tegenstelling tot Wireshark)

Voor het loggen ... ik wou dat ik het wist. Sorry.

Ook, dupe van Hoe kan ik in C# de SOAP vastleggen die wordt gebruikt in een webservice-aanroep?

2
toegevoegd
Je hebt gelijk, want foutopsporing werken werkt prima. Het is echter een heel ander verhaal om de aanvraag te loggen.
toegevoegd de auteur Tempname, de bron