Erfassen der Soap-Anfrage/-Antwort von einem Webservice

Ich arbeite an einem SSIS-Paket, das eine C# -Skriptaufgabe verwendet. Zum Debuggen und Loggen möchte ich die Soap Request/Response vom Webservice erfassen.

Nun, das ist etwas, was ich noch nie zuvor gemacht habe und ich bin ein bisschen festgefahren. Ich verwende .Net's eingebaute Unterstützung für Webservices und die generierte Proxyklasse.

Jede Hilfe mit diesem wird sehr geschätzt.

Hier ist mein aktueller 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 wurde mithilfe von Verweis hinzufügen/Server hinzufügen erstellt. Die Basisklasse ist System.Web.Services.Protocols.SoapHttpClientProtocol
hinzugefügt der Autor Tempname, Quelle
ZBatch_PublisherService.ZBatchPublisherServiceService ? Wie hast du es erschaffen? Web-Referenz hinzufügen / Service hinzufügen ? Was ist seine Basisklasse?
hinzugefügt der Autor L.B, Quelle
hinzugefügt der Autor L.B, Quelle
mögliches Duplikat von In C#, wie würde ich den SOAP eines Web-Service-Anrufs erfassen?
hinzugefügt der Autor John Saunders, Quelle

1 Antworten

Zum Debuggen können Sie Fiddler2 einfach verwenden, um jeglichen Web-Datenverkehr zu erfassen, einschließlich des vollständigen xml einer SOAP-Anfrage/-Antwort (und es behandelt SSL im Gegensatz zu Wireshark sogar problemlos)

Zum Loggen ... Ich wünschte ich wüsste es. Es tut uns leid.

Auch ein Betrüger von Wie würde ich in C# den SOAP erfassen, der in einem Web-Service-Anruf verwendet wird?

2
hinzugefügt
Du hast recht, zum Debuggen funktioniert Fiddler ganz gut. Der Versuch, die Anfrage zu protokollieren, ist jedoch eine ganz andere Geschichte.
hinzugefügt der Autor Tempname, Quelle