Нет доступа к папке Azure (ASP.NET MVC)

290
12 апреля 2017, 11:35

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

После этого он отображает видео для просмотра

С записью все в порядке.

Но когда я пытаюсь показать видео, я получаю эту ошибку

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Когда я запускаю веб-сайт на локальной машине, все в порядке, и видео отображается

Я сталкиваюсь с этой проблемой только на хостинге (Azure)

Вот код контроллера

[HttpPost]
public ActionResult PostRecordedAudioVideo()
{
    foreach (string upload in Request.Files)
    {
        var path = AppDomain.CurrentDomain.BaseDirectory + "uploads/";
        var file = Request.Files[upload];
        file?.SaveAs(Path.Combine(path, Request.Form[0]));
    }
    return Json(Request.Form[0]);
}

Самое интересное в том , что я вижу файл в папке используя подключение через ftp

Скрин собственно

В консоли вижу такое

У меня есть предположение что трабл в доступах к папке

Но вопрос, как это пофиксить?

Answer 1

IIS не отдает статические файлы, для которых у него не прописан mime type. Т.е. он просто не знает, является ли ваш файл статическим и безопасно ли его отдавать первому встречному.

Пропишите в web.config на уровне сайта

<configuration>
    <system.webServer>
        <staticContent>
            <remove fileExtension=".webm" />
            <mimeMap fileExtension=".webm" mimeType="video/webm" />
        </staticContent>
    </system.webServer>
</configuration> 

Но вообще идея заливать хоть что-то прямо в корень сайта - сомнительна. Лучше заливать в Azure Storage - и отдавать пользователю прямо оттуда.

READ ALSO
Вставка текста в textbox

Вставка текста в textbox

Можно ли запретить вставлять текст (ctrl+v) в textbox? Если да, то каким образом?

310
Что такое Task.Yield()?

Что такое Task.Yield()?

Я не понимаю что это, как работает и в каких случаях используетсяМожет кто-нибудь по-русски объяснить?

300
Создание полупрозрачной Panel

Создание полупрозрачной Panel

Нужно, чтобы при нажатии на button появлялась panel поверх всех компонентовPanel должна быть чёрного цвета и полупрозрачная

370
C# парсинг IP с разными октетами

C# парсинг IP с разными октетами

Здравствуйте, задача написать регулярное выражение для выборки данных следующим образом: в результате должны остаться правильные IP-адреса...

254