拒绝访问XML文件的路径

时间:2017-10-25 01:59:30

标签: c# asp.net xml webforms

所以我目前正在开发一个ASP.NET项目。它要求我写一个List<>到XML文件。我创建了一个" data.xml"项目文件夹中的文件,这是我的几行代码:

XmlSerializer serializer = new XmlSerializer(typeof(List<BookItem>));
TextWriter filestream = new StreamWriter("data.xml");
serializer.Serialize(filestream, book);
filestream.Close();

一切顺利运行,直到&#34; write-data-to-xml-file&#34;部分。我遇到了这个问题:

System.UnauthorizedAccessException: 'Access to the path 'C:\Program Files (x86)\IIS Express\data.xml' is denied.'

我错过了任何设置,还是应该包含任何棘手的代码?

4 个答案:

答案 0 :(得分:0)

也许你在覆盖.xml方面遇到了麻烦。它是否在某处开放,例如你骑?如果没有,您是否有权覆盖它?尝试删除它,看看你的代码是否执行。

答案 1 :(得分:0)

你需要做两件事

1-转到您的文件并更改安全权限并允许完全控制,修改,读取和写入。

2-转到任务管理器并结束data.xml

更改此行

TextWriter filestream = new StreamWriter("data.xml"); 

进入这个

 TextWriter filestream = new StreamWriter(@"fullpath");

答案 2 :(得分:0)

尝试放置特定的文件位置,例如c:\ data.xml,因为我认为原因是因为它无法写入默认位置。

TextWriter filestream = new StreamWriter(@"c:\data.xml");

答案 3 :(得分:0)

好的,一些小问题

new StreamWriter("data.xml");

您尚未指定完整路径,并且IIS尝试在运行的相对路径中创建,并且您的IIS用户没有足够的权限来创建此文件或修改具有相同名称的现有文件。 你可以

Server.Map("~")

获取正在运行的网站路径并创建用于创建文件的自定义路径