我已经使用 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 响应。
关于我做错了什么的任何想法?类似问题的其他答案是指 SaveAs 是一种保存到文件的方法,但我读到的其他问题都没有提到 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 值来自相机)