Tôi đang cố phát trực tuyến video QuickTime sang iPhone từ ứng dụng web ASP.NET bằng HttpHandler. Khi lưu trữ ứng dụng web từ IIS 5.1 (Windows XP), trình phát video sẽ mở ra và sau đó hiển thị lỗi 'Máy chủ không được định cấu hình chính xác'. Tuy nhiên, khi sử dụng IIS 7.5 (Windows 7), video sẽ phát tốt.Phát video Quicktime trên iPhone bằng HttpHandler và IIS 5.1
Môi trường sản xuất đang chạy IIS 6.0 và có cùng sự cố, khi cố gắng phát video trên iPhone qua Mobile Safari hiển thị lỗi ở trên.
Tôi đã kiểm tra các tiêu đề Http và chúng xuất hiện giống nhau giữa hai máy chủ (ngoài một số ít, chẳng hạn như tiêu đề Server, rõ ràng là khác nhau), ngoại trừ chúng xuất hiện theo thứ tự khác nhau , mặc dù tôi nghi ngờ rằng điều này đang gây ra vấn đề.
Theo this thread trên Google Groups, việc thêm tiêu đề 'Accept-Ranges: bytes' có thể giúp, mặc dù điều này không có sự khác biệt đối với chúng tôi. Tôi cũng đã thêm tiêu đề ETag, không có may mắn.
Mã thực sự chịu trách nhiệm cho việc gửi các tập tin trông giống như sau:
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);
Đoạn mã trên mà truyền file xuất hiện để được hoạt động một cách chính xác và các file video phát lại một cách chính xác trong tất cả các trình duyệt máy tính để bàn và khi lưu trữ từ IIS 7.5 trên Windows 7. Vấn đề chỉ rõ ràng khi cố gắng phát các tập tin video trên iPhone bằng cách sử dụng Mobile Safari sử dụng mã trên với ứng dụng web ASP.NET được lưu trữ trên IIS 5.1 hoặc IIS 6.0.
Có ai khác có kinh nghiệm bất cứ điều gì như thế này và có bất kỳ ý tưởng về những gì tôi có thể làm để có được điều này làm việc?
Mẹo Accept-Ranges đã giúp tôi với một vấn đề tương tự với ASP.NET MVC. – kim3er