ASP.NET MVC NESTED内容文件的虚拟目录

时间:2012-05-30 17:04:47

标签: asp.net-mvc iis virtual-directory

我正在尝试在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后,我看到它在错误消息的末尾添加了“访问被拒绝”。但是,该目录具有读取访问权限的“Everyone”权限,但仍然无效。我已经看过详细说明同样错误的帖子,但是权限设置解决方案对我不起作用。

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

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

[编辑#3]:我正在尝试做的IIS 6层次结构是:默认网站 - &gt; OurSite(MVC网站是ITSELF的虚拟目录) - &gt;图像(我正在努力的虚拟目录)。这是一个嵌套的虚拟目录肯定存在问题;如果我创建目录作为默认网站的直接子项而不是默认网站 - &gt;我们的网站,它运作良好。

谢谢,

安迪

2 个答案:

答案 0 :(得分:1)

确保运行App Pool的身份对该虚拟文件夹具有执行权限和列表权限,因为它正在尝试监视该虚拟文件夹的缓存更改。

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

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

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

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

答案 1 :(得分:0)

阅读Turnkey的回答和您的意见,我只想指出,如果您的AppPool使用NETWORK SERVICE身份,那么您的远程服务器需要添加网络服务器的计算机/计算机帐户共享文件夹和NTFS权限 NETWORK SERVICE帐户 如果您将NETWORK SERVICE添加到共享文件夹和NTFS权限,则只需添加本地计算机NETWORK SERVICE帐户而不是 Web服务器 s NETWORK SERVICE帐号。我希望我有意义 每当您使用计算机的NETWORK SERVICE帐户远程连接时,您都可以使用计算机的计算机帐户生效,这就是您需要添加的内容。
假设您的网络服务器名为 PRODSERVER ,您需要将计算机/计算机帐户 PRODSERVER $ 添加到远程共享文件夹的权限。
希望有所帮助。