私の会社では、Volusion ストアに API 呼び出しを行って新しい注文を取得するサーバー (2008 R2) でサービスを実行しています。このサービスは、エクスポートされた注文を BusinessWorks で使用する QuoteWerks xml 形式に変換します。
私はいくつかの変更を行うことを任されており、現在、ワークステーション (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);
}
エラーがスローされる前に、返された値を読み取ってイベント ログにスローし、フォーマット エラーがあったかどうかを確認するために、"using" ブロックを追加しました。URL の形式は次のとおりです。エラーを確認しようとしましたが、成功しませんでした。
http://www.yourdomain.com/net/WebService.aspx?Login=jon_doe@volusion.com &EncryptedPassword=471757EA629DDFD10B75D92A2AD223DFC00AD2E74C1D342B23F3254EC9A4965114351E&SELECT_Columns=*
私の問題は、この変更を行っている間、元のサービスがサーバー上で実行され続けるため、悪いリターンを引き起こす可能性があると私が考えることができるすべてが問題ではないということです.
私の質問はこれです.まったく同じコードを使用して別のPCで実行されている同じサービスが使用可能な結果を取得するときに、WindowsサービスがAPI呼び出しから何も返されないのはなぜですか? これを追跡するには何を確認すればよいですか?