У меня есть проект веб-API ASP.NET Core 5, который в настоящее время размещен как веб-приложение Azure в плане службы приложений Windows. Поскольку у меня есть пара гигабайт хранилища, связанного с планом службы приложений, я хочу использовать 10 ГБ для кэша изображений, где я храню изображения, созданные с помощью API.
Вот некоторый контекст:
Как я уже сказал, кэширование работает нормально, если я запускаю локально в IIS Express. Насколько я знаю, план службы приложений Windows использует Kestrel для хостинга. Я ищу путь к хранилищу в веб-приложении Azure, где я могу создавать и удалять каталоги + создавать/читать/удалять файлы.
Поскольку план службы приложений — B1, план службы приложений выполняется на выделенной виртуальной машине Azure, согласно документам: https://learn.microsoft.com/en-us/azure/app-service/overview-hosting. -планы
Из https://learn.microsoft.com/en-us/azure/app-service/operating-system-functionality я узнал, что есть диск C и диск D.
В моем веб-приложении я могу выбрать Инструменты разработки -> Инструменты для продвижения -> Перейти к Kudu. Когда я нажимаю «Среда» в Kudu, я вижу некоторые абсолютные пути, которые я безуспешно пытался записать. Я также пытался получить доступ
тоже без успеха.
Я также попытался добавить виртуальный каталог (поскольку я хочу хранить изображения в другом каталоге, чтобы иметь возможность использовать опцию «удалить дополнительные файлы в месте назначения»). Я также подключился через FTP к /site/wwwroot/
, где я могу видеть свое развернутое приложение.
Раньше мне удавалось читать файлы из виртуального каталога из приложения ASP.NET Webforms, но с этим проектом ASP.NET Core 5 API мне не удалось сопоставить относительные пути с абсолютными путями.
Мой главный вопрос: какой абсолютный путь мне нужно использовать в моем проекте API, чтобы иметь разрешения на создание/удаление каталога и разрешение на создание/чтение/удаление файла в моем веб-приложении Azure?
Хорошо, я понял это. У меня было несколько фатальных ошибок при запуске приложения. Кажется, они были связаны с ApplicationInsights. Я полностью удалил его с веб-портала Azure, и теперь все работает.
Следующий путь работает как базовый путь D:\\home\\
Кричите, чувак, большое тебе спасибо, настоящий спаситель жизни. Пришлось перенести приложение IIS в Azure в проекте, который я не создавал, и они использовали локальное хранилище временных файлов для создания PDF-файла, прежде чем использовать его для отправки для загрузки. Пришлось найти какой-то путь, чтобы заставить его работать, и D:\home\ был идеальным. Спасибо.