我想从提供的路径中创建一个文件列表。我需要从位于其他服务器而不是我的IIS服务器上的给定文件夹中读取所有文件。
我在IIS服务器上Map了驱动器以读取它,但页面加载时它要求我提供凭据,我不希望这样。我已将凭据保存在IIS上上传页面的位置并Map了驱动器。
string xrayPath = @"\\172.18.0.23\or\CARM\" + xrayPath;
List<FileInformation> directories = new List<FileInformation>();
List<FileInformation> lstFiles = new List<FileInformation>();
List<FileInformation> lstAllFiles = new List<FileInformation>();
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(xrayPath);
int fileId = 0;
PoplateFiles(ref lstFiles, ref directories, dir, 0, ref fileId);
foreach (var file in directories)
{
file.isDirectory = true;
lstAllFiles.Add(file);
}
foreach (var file in lstFiles)
{
file.isDirectory = false;
lstAllFiles.Add(file);
}
字符串
当我测试它时,它在Visual Studio中工作,但当我将它部署到IIS上的服务器时,它会要求我提供凭据,当我在浏览器上提供凭据时,什么也没有发生。
1条答案
按热度按时间fquxozlt1#
在Map驱动器的服务器上,我创建了一个应用程序池,并在应用程序池的标识字段中选择了有权访问Map驱动器的用户,并将加载用户配置文件设置为true。
然后,我将该应用程序池分配给我的应用程序虚拟目录。
现在这段代码可以正常工作了。之前,应用程序池上的身份用户无法访问其他网络路径/Map驱动器。
因此,我提供了有权访问该路径的用户,即在Map文件夹的安全选项卡中。现在它在该用户下运行,因此它不会要求凭据。