繁体   English   中英

如何从C#中的POST正文保存视频/ MP4

[英]How to save video/MP4 from POST body in C#

我已经使用HTTP POST在IP摄像机(Sercomm RC8021)上设置了运动检测。 侦测到运动后,相机会启动HTTP POST,将MP $视频附加到帖子主体中。 我有一个带有C#代码的ASP.NET页,试图保存该文件:

    protected void Page_Load(object sender, EventArgs e)
    {
        String filename = "~/MotionDetectAttachment.mp4";
        this.Context.Request.SaveAs(Server.MapPath(filename), false);
    }

问题是服务器将HTTP 500代码发送回相机,并且文件未保存。 使用wireshark之​​前,通信似乎很好,直到wireshark用“ TCP Window Full”标记一个数据包,然后是一系列ZeroWindow和Keep-Alive消息。 最终,连接被重置,并且摄像机记录了来自服务器的500响应。

关于我在做什么错的任何想法吗? 其他类似问题的答案都将“另存为”作为一种保存到文件的方法,但我阅读的其他所有问题均未提及wireshark问题。

相机日志样本:

2012年11月2日11:38:35 HTTP-POST:无法发布文件[HTTP错误代码:500]。
2012年11月2日11:38:03警报:检测到运动。

Wireshark日志中HTTP标头的一部分:

POST /PFDemo/MotionDetectAttachment.aspx?cameraID=1 HTTP / 1.0
主机:{正确的主机IP}
内容类型:视频/ mp4
内容长度:158689
授权:基本
连接方式:关闭
X-EventInfo:motion,71,md_window3

(X-EventInfo值来自相机)

您是否更改了maxRequestLength和executionTimeout的默认值? 即使您有,也可能会遇到问题。

乔恩·加洛韦(Jon Galloway)在这方面写了一篇很棒的文章

maxAllowedContentLength也起作用。 对此问题的答案可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM