我正在使用一个使用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
}
}
答案 0 :(得分:2)
对于调试,您可以轻松地使用Fiddler2捕获任何Web流量,包括SOAP请求/响应的完整xml(它甚至可以轻松处理SSL,与Wireshark不同)
记录...我希望我知道。遗憾。
此外,In C#, how would I capture the SOAP used in a web service call?
的欺骗