Я пишу собственный сервер на .NET на основе архитектуры REST с Nancy (версия 1.4.4).Я предпочел делать хостинг самостоятельно (Nancy.Hosting.Self - версия 1.4.1), и одна из необходимых функций - отвечать на запрос видеофайлом.Чтобы сделать изображение ясным, мой партнер пишет приложение React, и ему нужно это видео.
Я пробовал разные варианты:
Сначала я попробовал Response.AsFile()
, но когда я пытаюсь получить к нему доступ черезпо ссылке получаю 404 с ярлыком "Запрошенный вами ресурс не найден".и я понятия не имею, почему ...
public class HelloModule : NancyModule
{
public HelloModule()
{
Get["/"] = parameters =>
{
return Response.AsFile(@"C:\7\video112018.mp4","video/mp4");
};
}
}
Второй вариант должен был использовать GenericFileResponce
, как в коде ниже, но это приводит к той же проблеме:
public class HelloModule : NancyModule
{
public HelloModule()
{
Get["/"] = parameters =>
{
GenericFileResponse fileResponse = new GenericFileResponse(@"C:\7\video112018.mp4");
return fileResponse;
};
}
}
Последнийя попытался записать напрямую в поток ответов, как показано в приведенном ниже коде, но в этом случае возникает ошибка «Указанное имя сети больше не доступно».Хитрость заключается в том, что эта ошибка иногда возникает, но я не нашел никакой зависимости, откуда она берется ...
public class HelloModule : NancyModule
{
public HelloModule()
{
Get["/"] = parameters =>
{
return new Response
{
ContentType = "video/mp4",
Contents = s =>
{
String fileName = @"C:\7\video112018.mp4";
using (var stream = new FileStream(fileName, FileMode.Open))
stream.CopyTo(s);
s.Flush();
s.Close();
}
};
};
}
}
Буду очень признателен, если у вас есть какие-либо предложения по поводу этих решений или вы дадите другоеодин.
PS Я также пытался отправить изображение, оно работает с третьим подходом, но не с первым или вторым
PPS не судите код строго, потому что это только пример)