所以我目前正在开发一个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.'
我错过了任何设置,还是应该包含任何棘手的代码?
答案 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("~")
获取正在运行的网站路径并创建用于创建文件的自定义路径