1

我正在尝试在我的 ASP.NET MVC 3 网站中映射一个虚拟目录。虚拟目录仅包含图像文件,物理目录位于另一台服务器上。当我尝试通过 Web 浏览器访问此目录中的图像时,我收到 HTTP 500 错误:

Parser Error Message: An error occurred loading a configuration file: Failed to start monitoring changes to '<virtual directory path>' because access is denied.

[编辑]:重新启动 IIS 后,我看到它在错误消息的末尾添加了“访问被拒绝”。但是,该目录对其具有读取访问权限的“所有人”权限,但它仍然无法正常工作。我已经看到详细说明相同错误的帖子,但是权限设置解决方案对我不起作用。

为什么要查找配置文件?我已经更新了 Global.asax 以忽略有问题的路由,并且在 IIS 6 中,我可以毫无问题地浏览位于虚拟目录中的文件。我已验证虚拟目录未设置为应用程序。此外,对目录的权限对所有人集都具有读取权限。我究竟做错了什么?

[编辑#2]:被指向的虚拟目录是一个网络共享文件夹......这有什么区别吗?

[编辑#3]:我正在尝试做的 IIS 6 层次结构是:默认网站 -> OurSite(MVC 网站,它是一个虚拟目录) -> 图像(我正在努力的虚拟目录)。这是一个嵌套的虚拟目录,这肯定是有问题的。如果我将目录创建为默认网站而不是默认网站 -> OurSite 的直接子目录,则它可以正常工作。

谢谢,

安迪

4

2 回答 2

1

确保运行应用程序池的身份在该虚拟文件夹上也具有执行和列出权限,因为它正在尝试监视它以进行缓存更改。

http://support.microsoft.com/kb/316721/

[编辑] 此链接表明它可能是第二种情况,它没有对共享目录中的子文件夹的权限。

http://support.microsoft.com/kb/317955

ASPNET 帐户是否可以一直访问该树?

于 2012-05-30T17:52:27.943 回答
0

阅读交钥匙的答案和您的评论,我只想指出,如果您的 AppPool 使用NETWORK SERVICE身份,那么您的远程服务器需要将 Web 服务器的机器/计算机帐户添加到共享文件夹和 NTFS 权限而不是帐户NETWORK SERVICE
如果您添加NETWORK SERVICE到共享文件夹和 NTFS 权限,您只是添加本地计算机NETWORK SERVICE帐户而不是Web 服务器NETWORK SERVICE帐户。我希望我说得通。
每当您使用计算机的NETWORK SERVICE帐户进行远程连接时,您实际上是在使用计算机的计算机帐户,因此您需要添加该帐户。
假设您的网络服务器被调用PRODSERVER,您需要将机器/计算机帐户PRODSERVER$添加到远程共享文件夹的权限。
希望有帮助。

于 2014-08-11T07:25:55.197 回答