Поиск в общей папке через iis - PullRequest
0 голосов
/ 13 июня 2019

Я написал веб-приложение, в котором пользователь может искать в общей папке файлы, а затем выбранный файл будет отображаться в браузере.

Все работает нормально, когда я запускаюприложение через Visual Studio.

Но если я пытаюсь запустить его через IIS, я получаю ошибку 500 (Внутренняя ошибка сервера) при выполнении JSON, который находится в общих папках.

Есть ли какие-либоограничение разрешений?Буду ли я запускать его через 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"));
  }
}
<script type="text/javascript">
  $(document).ready(function () {
    $("#MCodeID").on("change", function () {
      var url = '@Url.Content("~/")' + "Materials/GetFiles";
      var ddlsource = "#MCodeID";
      var items = "<option value='0'>--Select File--</option>";
      $("#FCodeID").html(items);
      var items = " ";
      $("#pdfviewer").hide();
      $(".loading-eclipse").show();
      $.getJSON(url, { MCodeID: $(ddlsource).val() }, function (data) {
        $("#FCodeID").empty();
        $.each(data, function (i, file) {
        if (file.value.includes("in Use"))
          items += "<option value='" + file.value + "'" + "style='background-color:orange;'>" + file.text + "</option>";
        else
          items += "<option value='" + file.value + "'>" + file.text;
      });
      $("#FCodeID").html(items);
      $(".loading-eclipse").hide();
      $("#FCodeID").show();
    });
  })
})
    </script>

Можно ли использовать учетные данные пользователей при запуске приложения через IIS?

1 Ответ

0 голосов
/ 28 июня 2019

Я решил вышеуказанную ошибку, предоставив пользователю полный доступ к общей папке, а не только разрешение на чтение.Спасибо @Jalpa за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...