我有一个存储在 App_Data 中的 XML 文件,它仅用于在启动时读取一些配置。当我尝试在我的代码中打开它时,我收到一条 Access to the path ... is denied 消息。
我无法理解为什么以及如何解决它。我想理论上我应该改变文件(和目录)的权限,但这并没有改变任何东西。
提供更多背景知识: 1. 它是与项目捆绑在一起的文件,因此 VS2008 创建的设置在安装过程中将其写入正确的位置。我认为我不需要在安装后做任何不寻常的事情,这样 ASP.NET 应用程序就可以访问。2.当我尝试在本地发布时,我没有遇到任何问题。- 这仅在测试 Windows 2003 服务器上。3. 我跑了一个简单的页面来了解 IIS 的有效用户 - 它是 NT AUTHORITY\NETWORK SERVICE。我尝试向该用户授予对此文件的“完全访问权限”,但仍然无法正常工作。
打开它的代码很简单:
FileStream fs = new FileStream(Server.mapPath(s), FileMode.Open);
其中 s 定义为 '~/App_Data/myfile.xml
我什至复制并粘贴了完整的路径和文件名(来自异常),并在其上尝试了“dir”,它确实存在(例如,为了避免拼写错误)。
我也尝试按照那里的一些建议运行 aspnet_regiis.exe /s 。
这让我很困惑。