ディレクトリに2枚の写真があります。
IMG_MGR_VAH007157100_d68807cb-8bd5-4ca8-861d-d878fa7e20b9.tiff IMG_MGR_VAH007157200_121e8ae3-8e88-4775-be1e-a833e1c1eb51.tiff
私はボタンを持っています:
private void btnUpload_Click(object sender, EventArgs e)
{
//check if all files in this folder are .tiff.
finalImages = Directory.GetFiles(AppVars.FinalPolicyImagesDirectory);
if (finalImages.Length == 0)
{
MessageBox.Show("There are no TIFF files to be uploaded. Please generate files first.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
Web web = new Web();
XML xml = new XML();
//The first item in this foreach works fine. The second item gets hung.
foreach (string tiffFile in finalImages)
{
PolicyNumber = Path.GetFileName(tiffFile).Substring(8, 12);
basePolicyNumber = PolicyNumber.Remove(PolicyNumber.Length - 2);
basePolicyNumber = basePolicyNumber + "00";
finalPolicyName = Path.GetFileName(tiffFile);
//THIS IS WHERE I RUN INTO PROBLEMS......BUT ONLY WITH THE SECOND FILE IN THE FOREACH CLAUSE.
PolicyUUID = web.GetPolicyUUID(AppVars.pxCentralRootURL, basePolicyNumber);
if (!string.IsNullOrEmpty(PolicyUUID) == true)
{
ixLibraryPolicyBucketURL = AppVars.ixLibraryRootURL + "policy_" + PolicyUUID + "/objects/";
try
{
httpResponse = web.UploadFileToixLibrary(ixLibraryPolicyBucketURL, tiffFile);
xml.GeneratePayLoad(ixLibraryPolicyBucketURL + finalPolicyName + ".tiff", finalPolicyName);
//web.pxCentralPOST(ixLibraryPolicyBucketURL + "/IMG_MGR_37722779-7487-4d47-a669-ac33a61dceb2.tiff", AppVars.pxCentralRootURL + PolicyUUID, AppVars.pxCentralXMLPayloadFilePath);
MessageBox.Show(httpResponse);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
}
「foreach」句の2番目の項目は、この呼び出しでハングします。
PolicyUUID = web.GetPolicyUUID(AppVars.pxCentralRootURL、basePolicyNumber);
このクラス/メソッドのコードは次のとおりです。
public string GetPolicyUUID(string rootURL, string basePolicyNumber)
{
string PolicyUUID = "";
using (WebClient client = new WebClient())
{
NetworkCredential credentials = new NetworkCredential();
credentials.UserName = AppVars.Username;
credentials.Password = AppVars.Password;
client.Credentials = credentials;
if (DoesPageExist(rootURL + basePolicyNumber) == true)
{
try
{
XmlDocument doc = new XmlDocument();
string XMLString = "";
//the app stops working here. it just hangs, no errors or anything. IT WORKS THE FIRST TIME AROUND.
XMLString = client.DownloadString(rootURL + basePolicyNumber);
doc.LoadXml(XMLString);
var node = doc.DocumentElement.SelectSingleNode("//Identifier[@name='InsightPolicyId']");
if (node != null && node.Attributes["value"] != null)
{
var val = node.Attributes["value"].Value;
PolicyUUID = val.ToString();
}
}
catch (WebException ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("Page does not exist. This means that the policy number of the picture you're trying to upload does not exist in pxCentral. Please verify its name. The policy number in questoin is " + basePolicyNumber + ".", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
return PolicyUUID;
}
2番目の画像でこれらのコードを実行しているときに、アプリがハングする理由がわかりません。誰か私に手を貸してもらえますか?