1

我有一个存储在 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 。

这让我很困惑。

4

1 回答 1

3

事实上,我想我找到了。我需要按如下方式打开文件:

new FileStream(Server.MapPath(s), FileMode.Open, FileAccess.Read);

于 2010-01-24T21:38:41.690 回答