c# - 如何在 C# 中从 POST 正文中保存视频/MP4

标签 c# asp.net

我已经使用 HTTP POST 在网络摄像机 (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 窗口已满”标记数据包,然后是一系列 ZeroWindow 和 Keep-Alive 消息。最终连接被重置,摄像头记录了来自服务器的 500 响应。

关于我做错了什么的任何想法?类似问题的其他答案提到 SaveAs 是一种保存到文件的方法,但我读到的其他问题都没有提到 wireshark 问题。

相机日志样本:

11/02/2012 11:38:35 HTTP-POST:Failed to post file [HTTP error code: 500].
11/02/2012 11:38:03 Alert: Detected motion.

Wireshark 日志中的部分 HTTP header :

POST /PFDemo/MotionDetectAttachment.aspx?cameraID=1 HTTP/1.0
Host: {correct host IP}
Content-Type: video/mp4
Content-Length: 158689
Authorization: Basic
Connection:close
X-EventInfo: motion,71,md_window3

(X-EventInfo 值来自相机)

最佳答案

您是否更改了 maxRequestLength 和 executionTimeout 的默认值?即使你有,你可能仍然有问题。

Jon Galloway 写了一篇 excellent article对此。

maxAllowedContentLength 也发挥了作用。 this SO question的答案可能有帮助。

关于c# - 如何在 C# 中从 POST 正文中保存视频/MP4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202431/

相关文章:

c# - 从路径字符串中去除尾随字符

asp.net - 高级: How many times does HttpModule Init() method get called during application's life?

c# - 接受 ASP.NET 核心中的非 ascii 字符(可能还有 JSON)

c# - 转到 C# 库 | BadImageFormatException异常

c# - 从 JWT 验证 User.Identity

c# - StreamReader 卡在大文件上

c# - 对数据表中的列重新排序?

javascript - 暂时断开的 Javascript 事件之间状态保留的最佳实践?

javascript - 如何将标签添加到Asp.net文本框?

c# - 依赖注入(inject)(使用 SimpleInjector)和 OAuthAuthorizationServerProvider