2

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/02 11:38:35 HTTP-POST: ファイルの投稿に失敗しました [HTTP エラー コード: 500]。
11/02/2012 11:38:03 アラート: モーションが検出されました。

Wireshark ログの HTTP ヘッダーの一部:

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

(X-EventInfo 値はカメラからのものです)

4

1 に答える 1

0

maxRequestLength と executionTimeout のデフォルトを変更しましたか? 持っていたとしても、まだ問題があるかもしれません。

Jon Galloway は、これについて優れた記事を書きました。

maxAllowedContentLength も関係します。このSOの質問への回答が役立つ場合があります。

于 2012-11-02T20:23:14.570 に答える