我的公司在我们的服务器(2008 R2)上运行了一项服务,该服务向我们的Volusion商店发出API调用以获取新订单。该服务将导出的订单转换为QuoteWerks xml格式,以便在BusinessWorks中使用。
我的任务是进行一些更改,我现在正试图在我的工作站(Win7)上测试服务。在工作站上运行时,我无法使用我的更改版本,也无法使原始服务正常运行。两个版本都发布了关于xml没有根元素的错误。据我所知,这意味着返回值要么不是xml,要么根本就没有。 doc.Load(reader)上抛出了错误:
public static string GetXmlStringFromUrl(string apiUrl)
{
XmlDocument doc = null;
XmlTextReader reader = null;
StringWriter strWriter = null;
XmlTextWriter xmlWriter = null;
try
{
using(WebClient client = new WebClient()) {
string s = client.Download(apiUrl);
EventLogger.WriteToLog(s,EventLogEntryType.Information);
}
reader = new XmlTextReader(apiUrl);
doc = new XmlDocument();
doc.Load(reader);
strWriter = new StringWriter();
xmlWriter = new XmlTextWriter(strWriter);
doc.WriteTo(xmlWriter);
}
我添加"使用"阻止作为尝试读取返回的值并在抛出错误之前将它们扔进我的事件日志中,并查看是否存在格式错误。 URL具有这种格式,我试图检查错误但没有成功。
http://www.yourdomain.com/net/WebService.aspx?Login=jon_doe@volusion.com &EncryptedPassword=471757EA629DDFD10B75D92A2AD223DFC00AD2E74C1D342B23F3254EC9A4965114351E&SELECT_Columns=*
我的问题是,我能想到的所有可能导致错误返回的问题都不会成为问题,因为在进行此更改时,原始服务会继续在服务器上运行。
所以我的问题是,当使用完全相同的代码在另一台PC上运行的相同服务获得可用结果时,为什么Windows服务无法从API调用中获得任何回报?我应该检查什么来追踪这个?
答案 0 :(得分:0)
看起来实际的问题是他们保存了应用程序的现有安装的凭据,但是我的副本上的凭据却没有被接受。可能在某处发生了更新,但从未进入我的源代码。
无论哪种方式,我通过使用一组新的凭据来解决它,以使连接正常工作。