1

IIS をメディア サーバーとして使用する DLNA サーバーで作業しています。一部の DLNA クライアントは、範囲ヘッダーを含む http HEAD 要求を送信します。

Command: HEAD

+ URI: /RicDLNA/Streamer.ashx?media=/Videos/Guca%20Distant%20Trumpet/Gucha%20Distant%20Trumpet.mp4 ProtocolVersion: HTTP/1.1 Host: 192.168.1.100 range: bytes=0- transferMode.dlna.org:ストリーミング HeaderEnd: CRLF

「Accept-Ranges Bytes」のみで応答します。しかし、IIS はステータス コード 416 エラーを返します。このエラー Status により、クライアントは続行できないようです。

  1. このような範囲ヘッダーを HEAD リクエストで送信することは許可されていますか?
  2. 範囲がサポートされていることをクライアントが認識しており、IIS によって生成されたステータスコード 416 が回避されていることをクライアントが認識していることに応答する必要があります。
  3. 悪い IIS ステータスコードを OK ステータスでオーバーライドする可能性はありますか?
4

2 に答える 2

3

ietf.org RFC7233セクション3.1範囲では、抜粋を見つけることができます

サーバーは、GET 以外のリクエスト メソッドで受信した Range ヘッダー フィールドを無視する必要があります。

私にとって、これは次のことを意味します: HEAD コマンドで範囲要求を行うことができますが、サーバーはそれを無視する必要があります。

于 2014-06-30T14:01:18.227 に答える
0

IIS 6.0 および IIS 7.0 は、Range ヘッダーを含む HEAD 要求を受け入れます (そして、Popcorn Hour A-100 などの一部のメディア プレーヤーで予期される状態 206 を返します)。

最近、IIS 7.5 でこれらの要求を IIS 6.0 / 7.0 と同じように処理する必要がありましたが、ベータ版 http.sys v6.1.7000.0 およびベータ版前の static.dll v6.1.6801.0 (ドライバー署名) を使用してそれを行うことができました。 64 ビット バージョンの Windows では強制を回避する必要があります)。

于 2019-05-21T16:31:38.223 に答える