簡體   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