XML不会保存在asp.net中

时间:2014-12-04 21:07:29

标签: asp.net xmlwriter

我在保存xml文件时遇到问题。 我使用这个XMLwriter:

 using (XmlWriter writer = XmlWriter.Create("CarsXML.xml"))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("CarsXml");
                foreach (Car item in cars)
                {
                    writer.WriteStartElement("Car");
                    writer.WriteElementString("Brand", item.Brand);
                    writer.WriteElementString("Type", item.Type);
                    writer.WriteElementString("Price", item.Price);
                    writer.WriteElementString("Effect", item.Effect);
                    writer.WriteElementString("Year", item.year);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Close();

        }
好像对不对?没有编译错误.. 我也试过这个只是为了测试:

XDocument doc = new XDocument(
    new XElement("Root",
        new XElement("Child", "content")
    )
);
            doc.Save("Root.xml");

仍然没有运气..在控制台应用程序中使用它,它可以工作,因此代码必须正常... 我也试过了一段我在某处找到的代码 - 使用XmlDocument代替 - 但同样的交易。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

当您在Web应用程序中时,当前目录不是Web应用程序的根目录。它是IIS可执行文件所在的目录,因此位于Windows系统目录中的某个位置。

当然,您没有Web应用程序对该目录的写访问权限,因此当您尝试在那里创建文件时会遇到一些异常。

指定要创建的文件的完整路径。您可以使用MapPath方法从虚拟路径获取文件的物理路径。例如:

string fileName = Server.MapPath("/xmldata/CarsXML.xml");

using (XmlWriter writer = XmlWriter.Create(fileName))
  ...