通过 iis 在共享文件夹中搜索

我编写了一个 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 执行时,有没有办法使用用户凭据?


守着一只汪
浏览 171回答 1
1回答

繁星coding

我通过为用户提供对共享文件夹的完全访问权限而不仅仅是读取权限来解决上述错误。感谢@Jalpa 的帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript