【问题标题】:.NET Nancy response with a video file (self hosting)带有视频文件的 .NET Nancy 响应(自托管)
【发布时间】: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


    【解决方案1】:

    通过这样做,我能够进行非常基本的视频文件流式传输:

    Get["/"] = p =>
    {
        var file = new FileStream(@"PATH_TO_FILE", FileMode.Open);
        return new StreamResponse(() => file, "video/mp4");
    }
    

    这允许播放视频文件,但没有搜索。

    最后我找到了this 的帖子。添加这些扩展允许寻找视频。

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多