доступ к внешней папке проекта с Asp.net основное приложение в linux

#c# #asp.net-core

#c# #asp.net-ядро

Вопрос:

У меня возникли некоторые проблемы при попытке получить доступ к папке за пределами корневой папки приложения с помощью asp.net приложение, развернутое в Linux.

В данный момент приложение развернуто (для целей тестирования) в /home/pbl/projects/pbl-web/ .

Я хочу получить доступ к папке внешнего жесткого диска, который я установил в системе, и он находится внутри /mnt/ExtDist/Data .

Я использую PhysicalFileProvider со следующим путем: /mnt/ExtDist/Data . Этот путь настраивается в app.settings.json файле и извлекается через IConfiguration configuration переменную.

Вот часть кода в Startup.cs файле :

 public void ConfigureServices(IServiceCollection services)
{
  ...

var imagePath = configuration.GetSection("PhotoManagementSettings")["ImagesFolderPath"];
var rootPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

this.imagePhysicalFileProvider = new PhysicalFileProvider(imagePath));
 

Я пробовал по-разному, но пока безуспешно:

  1. передача абсолютного пути
  2. передача относительного пути и объединение с переменной rootPath (см. Код выше).

У PhysicalFileProvider меня появляется следующая ошибка:

 Unhandled exception. System.IO.DirectoryNotFoundException: /mnt/ExtDist/Data/
 

Тестирование кода в Windows и предоставление ему абсолютного пути, например, «C:Test » работает нормально.

Итак, в Linux есть что-то странное, что выходит из строя, но я не могу понять, почему. Какие-нибудь подсказки?

Заранее спасибо, Паоло

Комментарии:

1. Не настолько хорошо знаком. NET в Linux, но при условии ASP.NET работает ли он под каким-либо профилем пользователя, имеет ли этот пользователь (по крайней мере) разрешение на чтение по этому пути?

2. папка имеет разрешение rx (чтение и выполнение), владелец папки другой, приложение выполняется пользователем «pbl», а владельцем папки является «www-data»