我开发了一个必须访问 SharePoint 远程文件夹的 ASP.NET MVC 3。
为此,在开发过程中,在运行 Visual Studio 开发服务器之前,我尝试访问远程文件夹。然后,我必须介绍有权查看远程资源的用户的凭据。在此之后,使用以下代码:
string path = @"\\tests.sharepoint.es\folder1";
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] dis = di.GetDirectories();
文件夹访问成功。但是,当我从 IIS 执行我的 Web 应用程序时,这会失败,出现下一个错误:
拒绝访问路径“\tests.sharepoint.es\folder1\”。
即使我为应用程序池设置了运行 Visual Studio 开发服务器的同一用户,它仍然会失败。
我已经确定运行万维网发布服务 (W3SVC) 的用户是 SYSTEM(一个显然无权访问该文件夹的帐户),但我无法更改这一点,我不确定这是否会导致问题。
另外,我已经阅读了一些关于使用SPSecurity.RunWithElevatedPrivileges的帖子,但我不能使用它,因为我的 IIS 服务器没有安装 Sharepoint(它在另一台机器上),因此我不能使用 Microsoft.Sharepoint.dll 作为据我所知。
更新:当我尝试使用 Windows 资源管理器访问资源时,我读到操作系统使用 WebDav 而不是 NetBios。IIS 可以使用此协议访问资源吗?