Azure + ASP.Net + System.UnauthorizedAccessException: доступ к пути '/ Content / img / CourseImages' запрещен - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь загрузить файл, используя asp.net на Azure (это не виртуальная машина). Но постоянно я получаю сообщение об ошибке ниже:

System.UnauthorizedAccessException: Access to the path '/Content/img/CourseImages' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
at System.IO.Directory.CreateDirectory(String path)

Вот мой фрагмент кода:

string courseImageFolderPath = ConfigurationManager.AppSettings["CourseImage"];
string courseImageFilePath = Path.Combine(courseImageFolderPath, fileName);
if (!Directory.Exists(courseImageFolderPath))
        Directory.CreateDirectory(courseImageFolderPath);
courseImage.SaveAs(System.Web.Hosting.HostingEnvironment.MapPath(courseImageFilePath));

1 Ответ

0 голосов
/ 29 октября 2018

Каждое веб-приложение Azure имеет локальный каталог (D:\local), который является временным.Содержимое этой папки будет удалено, когда запуск больше не выполняется на ВМ.Этот каталог является местом для хранения временных данных для приложения.Не рекомендуется использовать эту папку вашим веб-приложением.

Согласно изолированной программной среде веб-приложения Azure , я предлагаю вам создать временную папку в корне папки вашего веб-приложения (D:\home\site\wwwroot) и использовать его для хранения временных данных.Или, как сказал Джейендран, вы можете использовать хранилище BLOB-объектов для загрузки своего изображения.

string tempFolder = Server.MapPath("~/TEMP");
if (!Directory.Exists(tempFolder))
{
    Directory.CreateDirectory(tempFolder);
}

Для получения дополнительной информации вы можете обратиться к этой проблеме .

Также, похоже, что сервис приложения не получает доступ к сетевому ресурсу.Итак, вы должны выдать себя за пользователя, который имеет доступ к сетевому ресурсу для создания каталога.Пожалуйста, обратитесь к этой статье .

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