捕获来自Web服务的soap请求/响应

时间:2011-10-27 19:09:02

标签: c# ssis asmx

我正在使用一个使用c#脚本任务的SSIS包。对于调试和日志记录,我想从webservice捕获soap请求/响应。

现在这是我以前从未做过的事情,而且我有点不知所措。 我正在使用.Net内置的对webservices和生成的代理类的支持。

非常感谢任何帮助。

这是我目前的代码:

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 个答案:

答案 0 :(得分:2)

对于调试,您可以轻松地使用Fiddler2捕获任何Web流量,包括SOAP请求/响应的完整xml(它甚至可以轻松处理SSL,与Wireshark不同)

记录...我希望我知道。遗憾。

此外,In C#, how would I capture the SOAP used in a web service call?

的欺骗