Не удается выполнить поиск в общей папке после использования класса NetworkConnection - PullRequest
0 голосов
/ 27 июня 2019

Я ударил стену при попытке fi.GetFiles(searchPattern, SearchOption.AllDirectories из папки общего доступа после использования new NetworkConnection(path, credentials).

Я использую NetworkConnection.cs из , это . Вызов new NetworkConnection(path, credentials) работает нормально, я получаю result = 0.
Но когда fi.GetFiles(searchPattern, SearchOption.AllDirectories выполняется, я получаю Exception thrown: 'System.NotImplementedException' in System.Private.CoreLib.dll Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request finished in 8802.3403ms 500 text/html; charset=utf-8 Failed to load resource: the server responded with a status of 500 () [https://localhost:44373/Materials/GetFiles?MCodeID=24140.00]

Полный код ~/Materials/GetFiles:

public JsonResult GetFiles(string MCodeID)
{
  if (MCodeID == null)
  {
    throw new ArgumentNullException(nameof(MCodeID));
  }

  List<Files> filelist = new List<Files>();
  string path = @"\\192.168.1.191\Materials Project";
  string searchPattern = MCodeID + "*";
  var credentials = new NetworkCredential("username", "pass", "domain");
  using (new NetworkConnection(path, credentials))
  {
    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 nfilepath = changeSlash.Replace("//192.168.1.191/Materials Project", "");
        filelist.Add(new Files
        {
          FCodeID = nfilepath,
          FDescr = file.Name + " | " + Math.Round((Convert.ToDouble(file.Length) / (1024 * 1024)), 2) + " MB",
        });
      }
      filelist.Insert(0, new Files { FCodeID = "0", FDescr = "--Select File--" });
    }
    else
    {
      filelist.Insert(0, new Files { FCodeID = "0", FDescr = "--No File--" });
    }
  }
  return Json(new SelectList(filelist, "FCodeID", "FDescr"));
}

Что мне не хватает?
Заранее спасибо за любую помощь!

1 Ответ

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

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

...