我编写了一个 Web 应用程序,用户可以在其中在共享文件夹中搜索文件,然后他们选择的文件将显示在浏览器中。
当我通过 Visual Studio 运行应用程序时,一切正常。
但是,如果我尝试通过 IIS 运行它,当共享文件夹中的 JSON 执行时,我会收到错误 500(内部服务器错误)。
有没有权限限制?我会通过 VS 运行它,它使用我的凭据,但不会在我通过 IIS 运行它时运行吗?也许共享文件夹必须具有 IIS_IUSR 组的读取权限?我说得对吗?
public JsonResult GetFiles(string MCodeID)
{
if (MCodeID == null)
{
throw new ArgumentNullException(nameof(MCodeID));
}
List<Files> filelist = new List<Files>();
//Searching Files in //192.168.1.191
string path = @"\\192.168.1.191\Materials Project\";
string searchPattern = MCodeID + "*";
DirectoryInfo fi = new DirectoryInfo(path);
if (fi.GetFiles(searchPattern, SearchOption.AllDirectories).Any())
{
foreach (var file in fi.GetFiles(searchPattern, SearchOption.AllDirectories))
{
var changeSlash = file.FullName.Replace('\\', '/');
var filepath = changeSlash.Replace("//192.168.1.191/Materials Project", "");
filelist.Add(new Files
{
FCodeID = filepath,
FDescr = file.Name + " - " + Math.Round((Convert.ToDouble(file.Length) / (1024*1024)), 2) + " MB",
FSize = Math.Round((Convert.ToDouble(file.Length) / (1024 * 1024)), 2)
});
}
filelist.Insert(0, new Files { FCodeID = "0", FDescr = "--Select File--" });
return Json(new SelectList(filelist, "FCodeID", "FDescr"));
}
else
{
filelist.Insert(0, new Files { FCodeID = "0", FDescr = "--No File--" });
return Json(new SelectList(filelist, "FCodeID", "FDescr"));
}
}
当应用程序通过 IIS 执行时,有没有办法使用用户凭据?
繁星coding
相关分类