2011-03-04 143 views
0

我有一个ASP.NET MVC应用程序,它尝试使用文件流和File.OpenRead()读取文件。 当文件的路径是同一个工作组上的共享,并且我为该共享提供了访问NETWORK SERVICE时,此功能完全按照需要工作。File.OpenRead()访问工作组中的共享文件,但不访问远程共享?

但是,当共享路径是LAN中远程共享的UNC路径时,读取权限为“Everyone”打开时,“File.OpenRead()”方法会引发异常,说“无法找到路径的一部分“。

在我的测试案例中,我正在调试本地ASP.NET MVC应用程序被赋予一个UNC路径到它实际运行的计算机。 这是我C驱动器上的一个共享,被“共享”,并具有读取权限“Everyone”的权限。

在IIS中是否有需要配置的东西? 如果我尝试模拟,在这种情况下,模拟并不重要,因为NETWORK SERVICE是用于在同一工作组中共享共享时尝试访问文件的用户。

+0

发布一些代码,并验证了文件的路径? – 2011-03-04 20:38:03

回答

0

验证共享权限以确保将权限授予NETWORK SERVICE帐户以便能够访问共享。共享需要权限以及实际的文件/文件夹。

的[]

+0

我认为,因为我给共享权限“所有人”,这并不重要。我明确地将共享的权限授予“网络服务”,同样的结果。这就像它无法找到路径或文件,而不是它是一个权限问题? – 2011-03-04 19:36:47

+0

我还没有问过你,你的应用程序是如何配置的(Windows Auth与Forms Auth,哪个用户放在运行你的网站的iss应用程序池中,你使用集成安全,匿名访问等)?这种信息可以帮助我们帮助你... 顺便说一下,看看这个链接,看看它是否适合你的情况:http://weblogs.asp.net/owscott/archive/2008/08/22/ IIS的Windows的身份验证和最双跳issue.aspx。 []的 – Fabio 2011-03-04 20:18:56