![](/img/trans.png)
[英]Nancy self hosting HttpListenerException: “The parameter is incorrect”
[英].NET Nancy response with a video file (self hosting)
我正在使用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();
}
};
};
}
}
如果您对这些解决方案有任何建议或提出其他建议,我将不胜感激。
PS我也尝试发送图像,它可以使用第三种方法,但不能使用第一种或第二种方法
PPS并不严格地判断代码,因为这只是示例)
通过执行以下操作,我能够进行非常基本的视频文件流传输:
Get["/"] = p =>
{
var file = new FileStream(@"PATH_TO_FILE", FileMode.Open);
return new StreamResponse(() => file, "video/mp4");
}
这样可以播放视频文件,但是没有进行搜索。
最后我找到了这个帖子。 添加这些扩展名可以搜索视频。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.