我在另一个项目中有一个类,它为XmlTextReader对象加载XML.XML文件。然后我的另一个项目(网站)使用这个项目来加载xml文件。所以当我运行这个网站时,它说它在C:\Program Files(x86)\IIIS Express\XML.XML中找不到XML.XML文件。我不能在那里创建一个新文件,我也不知道如何配置这个网站,从另一个目录中找到我的XML文件。我试着用谷歌搜索了很多,但找不到任何好的答案。任何快速修复或其他什么。这是asp.net 中的代码
protected void Page_Load(object sender, EventArgs e)
{
XMLObjectParser parseri = new XMLObjectParser("XML.xml");
parseri.readFileAndSave();
item = parseri.getItem(1);
和我的XMLObjectParser 中的代码
public XMLObjectParser(string file)
{
xmlreader = new XmlTextReader(file);
this.file = file;
}
感谢
您的代码尝试在不指定路径名的情况下打开文件
在这种情况下,文件的最终位置是IIS进程启动目录,而不是网站内的文件夹。
如果要访问网站文件夹中的文件,请使用Server.MapPath。
正如文档中所解释的,如果您没有设置任何相对路径,则假设该文件位于ASP页面所在的同一文件夹中。
所以,你可以写
XMLObjectParser parseri = new XMLObjectParser(Server.MapPath("XML.xml"));
如果您的文件应该位于相对于调用页面的当前文件夹中
你可以使用类似的东西指定网站文件夹结构中的任何文件夹
XMLObjectParser parseri = new XMLObjectParser(Server.MapPath("/APP_DATA/XML.xml"));
有关Server.MapPath的更多信息,请点击此处