URLにpingするサービスを持つpingアプリケーションを作成しました。 URLのリストは、XMLファイルに格納されます。
サービスの実行中にXMLに新しいサイトを追加しようとすると、アプリケーションがクラッシュします。XMLファイルのノードを追加するとクラッシュする
VS2010は、私のファイルが他のプロセスで使用されていると言いますが、すべて正常であると確信しています。私が追加している間、私のサービスはXMLを使用していません。
しかし、私はXmlReaderを使用すると推測します& XmlWriterは同時にクラッシュする場所です。
私のコードをLINQでXMLに書き直しますが、XmlReaderを同時に使用することが可能かどうか疑問に思っていました。& XmlWriter?
private void saveSites(Site newSite)
{
XmlDocument XDoc = new XmlDocument();
bool fileExists = true;
if (File.Exists("c:\\temp\\sites.xml") == false)
{
createXML();
fileExists = false;
}
using (XmlReader XReader = XmlReader.Create("c:\\temp\\sites.xml"))
{
XDoc.Load(XReader);
if (fileExists == true)
{
XmlNode SiteNode = XDoc.CreateNode(XmlNodeType.Element, "site", "");
XmlNode URLNode = XDoc.CreateNode(XmlNodeType.Element, "url", "");
URLNode.InnerText = newSite.URL;
XmlNode EmailNode = XDoc.CreateNode(XmlNodeType.Element, "email", "");
EmailNode.InnerText = newSite.Email;
SiteNode.AppendChild(URLNode);
SiteNode.AppendChild(EmailNode);
XDoc.DocumentElement.AppendChild(SiteNode);
}
else
{
foreach (Site site in sites)
{
XmlNode SiteNode = XDoc.CreateNode(XmlNodeType.Element, "site", "");
XmlNode URLNode = XDoc.CreateNode(XmlNodeType.Element, "url", "");
URLNode.InnerText= site.URL;
XmlNode EmailNode = XDoc.CreateNode(XmlNodeType.Element, "email", "");
EmailNode.InnerText = site.Email;
SiteNode.AppendChild(URLNode);
SiteNode.AppendChild(EmailNode);
XDoc.DocumentElement.AppendChild(SiteNode);
}
}
XDoc.Save("c:\\temp\\sites.xml");
}
}
URIを挿入できませんでしたが、文字列を使用していましたが、うまくいきました。ありがとうございます! –