HttpHandler を使用して、ASP.NET Web アプリケーションから iPhone に QuickTime ビデオをストリーミングしようとしています。IIS 5.1 (Windows XP) から Web アプリケーションをホストすると、ビデオ プレーヤーが開き、「サーバーが正しく構成されていません」というエラーが表示されます。ただし、IIS 7.5 (Windows 7) を使用すると、ビデオは正常に再生されます。
運用環境は IIS 6.0 を実行しており、モバイル Safari を介して iPhone でビデオを再生しようとすると上記のエラーが表示されるという同じ問題があります。
HTTPヘッダーを確認しましたが、2つのサーバー間で実質的に同じであるように見えます(明らかに異なるサーバーヘッダーなどのいくつかを除いて)。ただし、異なる順序で表示されることを除いて、問題を引き起こしています。
Google グループのこのスレッドによると、「Accept-Ranges: bytes」ヘッダーを追加すると役立つ場合がありますが、これは私たちにとって何の違いもありませんでした。ETag ヘッダーも追加しましたが、うまくいきませんでした。
ファイルの送信を実際に担当するコードは次のようになります。
Context.Response.Buffer = true;
Context.Response.ContentType = "video/x-m4v";
Context.Response.AppendHeader("Content-Disposition", "filename=\"Video.m4v\"");
Context.Response.AppendHeader("Content-Length", "23456789");
Context.Response.AppendHeader("Accept-Ranges", "bytes");
Context.Response.AppendHeader("ETag", GetETag(path));
Context.Response.TransmitFile(path);
ファイルを転送する上記のコードは、すべてのデスクトップ ブラウザーで、また Windows 7 上の IIS 7.5 からホストしている場合に、正しく機能しているように見え、ビデオ ファイルが正しく再生されます。 IIS 5.1 または IIS 6.0 でホストされている ASP.NET Web アプリケーションを使用した上記のコード。
他の誰かがこのようなことを経験し、これを機能させるために私ができることについて何か考えを持っていますか?