我工作的学校拥有提供网络服务的CRM。我正在尝试在SSIS脚本任务中使用Web服务,以便制作联系人和所有属性的XML源文件。这样,我可以设置软件包以填充用于报告服务的MS SQL数据库。我只想一开始就拉起所有东西,然后再制作和更新工作流程。
我要通过Web服务使用的数据量遇到问题。在线程完成之前,服务器端的连接已关闭。
我是否应该逐个循环浏览这些数据?还是有一些针对此问题的Web服务特定解决方案?
到Web服务的链接是:http://services02.askadmissions.net/ws/bridge.asmx
这是我的代码
bridge.Bridge connect = new bridge.Bridge();
connect.Timeout = -1;
String ClientName = "blah", PassKey = "blahblahblah";
XmlDocument GetAllAttributesResponse = new XmlDocument();
XmlDocument AttributesXml = new XmlDocument();
XmlDocument GetContactsResponse = new XmlDocument();
XmlDocument GetContactCountResponse = new XmlDocument();
//Pulling all existing attributes through web service (Approximately 897 attributes)
GetAllAttributesResponse.LoadXml(connect.GetAllAttributes(ClientName, PassKey));
//Formatting attributes to be so they can be used in the GetContacts operation
using (XmlWriter w = XmlWriter.Create(AttributesXml.CreateNavigator().AppendChild())) {
w.WriteStartElement("attributes");
foreach (XmlNode attribute in GetAllAttributesResponse.SelectNodes("//attribute/name")) {
w.WriteStartElement("attribute");
w.WriteNode(attribute.CreateNavigator(), false);
w.WriteEndElement();
}
}
//Storing total contact count for GetContacts Operation. (426,000 contacts)
GetContactCountResponse.LoadXml(connect.GetContactCount(ClientName, PassKey));
int TotalContactCount = Int32.Parse(GetContactCountResponse.SelectSingleNode("//count").InnerText);
//This is the query that is causing the Web Exception
GetContactsResponse.LoadXml(connect.GetContacts(ClientName, PassKey, 1, TotalContactCount, String.Empty, AttributesXml.InnerXml, String.Empty));