Volusion API 服务可以在一台 PC 上运行,但不能在其他 PC 上运行
Volusion API service works on one PC but no others
我公司在我们的服务器 (2008 R2) 上有一项服务 运行ning,该服务 API 调用我们的 Volusion 商店以获取新的 orders.The 服务将导出的订单转换为 QuoteWerks xml 用于 BusinessWorks 的格式。
我的任务是进行一些更改,现在我正尝试在我的工作站 (Win7) 上测试该服务。当 运行 在我的工作站上运行时,我无法让我的更改版本工作,我也无法正确地获得 运行 的原始服务。关于 xml 没有根元素的两个版本 post 错误。据我所知,这意味着 returned 值不是 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);
}
我添加了 "using" 块以尝试读取 returned 值并在抛出错误之前将它们放入我的事件日志中,并查看是否存在格式错误。
URL有这个格式,我试过检查错误没有成功。
http://www.yourdomain.com/net/WebService.aspx?Login=jon_doe@volusion.com &EncryptedPassword=471757EA629DDFD10B75D92A2AD223DFC00AD2E74C1D342B23F3254EC9A4965114351E&SELECT_Columns=*
我的问题是,我能想到的所有可能导致错误 return 的问题都不是问题,因为在我进行此更改时,原始服务继续在服务器上 运行。
所以我的问题是,为什么 windows 服务从 API 调用什么也得不到,而另一台电脑上使用完全相同代码的相同服务 运行ning有用的结果?我应该检查什么来追踪这个?
看起来实际问题是他们为现有应用程序安装保存的凭据以某种方式被接受,但我的副本上的凭据没有被接受。可能某个地方发生了更新,但从未对我的源代码进行更新。
无论哪种方式,我都通过使用一组新的凭据来使连接正常工作来解决它。
我公司在我们的服务器 (2008 R2) 上有一项服务 运行ning,该服务 API 调用我们的 Volusion 商店以获取新的 orders.The 服务将导出的订单转换为 QuoteWerks xml 用于 BusinessWorks 的格式。
我的任务是进行一些更改,现在我正尝试在我的工作站 (Win7) 上测试该服务。当 运行 在我的工作站上运行时,我无法让我的更改版本工作,我也无法正确地获得 运行 的原始服务。关于 xml 没有根元素的两个版本 post 错误。据我所知,这意味着 returned 值不是 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);
}
我添加了 "using" 块以尝试读取 returned 值并在抛出错误之前将它们放入我的事件日志中,并查看是否存在格式错误。 URL有这个格式,我试过检查错误没有成功。
http://www.yourdomain.com/net/WebService.aspx?Login=jon_doe@volusion.com &EncryptedPassword=471757EA629DDFD10B75D92A2AD223DFC00AD2E74C1D342B23F3254EC9A4965114351E&SELECT_Columns=*
我的问题是,我能想到的所有可能导致错误 return 的问题都不是问题,因为在我进行此更改时,原始服务继续在服务器上 运行。
所以我的问题是,为什么 windows 服务从 API 调用什么也得不到,而另一台电脑上使用完全相同代码的相同服务 运行ning有用的结果?我应该检查什么来追踪这个?
看起来实际问题是他们为现有应用程序安装保存的凭据以某种方式被接受,但我的副本上的凭据没有被接受。可能某个地方发生了更新,但从未对我的源代码进行更新。
无论哪种方式,我都通过使用一组新的凭据来使连接正常工作来解决它。