【发布时间】:2013-11-29 14:39:56
【问题描述】:
我有一个类似的代码:
string file;
using (StreamReader r = new StreamReader("xml.xml"))
{
file = r.ReadToEnd();
}
XElement xml = XElement.Parse(file);
using (XmlWriter w = XmlWriter.Create("xml.xml")) //The point of problem!
{
w.WriteStartDocument();
...;
w.WriteEndDocument();
}
当我尝试像控制台应用程序一样运行它时,一切正常。但是当我想在 ASP.NET 应用程序中使用它时,问题就开始了。在 using 行,它抛出 UnauthorizedAccessException 异常,描述为“访问路径被拒绝”。为什么?
【问题讨论】:
-
有多少请求同时尝试访问
xml.xml? ASP.NET 是高度并发的...... -
检查是否有权限写入 IIS 文件夹
-
附带说明:在应用程序内编辑文件不是一个好主意 - 它可能导致应用程序域回收
-
运行 Web 应用程序的帐户是否有权访问“xml.xml”?除非您使用模拟,否则 asp.net 在 AppPool 身份下运行,默认情况下是 ASPNET 用户。
-
第一行很容易写
string file = File.ReadAllText("xml.xml");