【发布时间】:2018-04-25 23:09:54
【问题描述】:
我正在使用 Nancy(版本 1.4.4)基于 REST 架构在 .NET 上编写自托管服务器。我更喜欢自托管(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();
}
};
};
}
}
如果您对这些解决方案有任何建议或提供其他解决方案,我将不胜感激。
P。 S. 我也尝试发送图像,它适用于第三种方法,但不适用于第一种或第二种方法
P.P. S.不要严格判断代码,因为它只是一个例子)
【问题讨论】:
标签: c# .net nancy self-hosting