Для подробной информации о.Net модификаторах доступа идут сюда
нет никаких реальных преимуществ или недостатков к защищенным членским переменным, это - вопрос того, в чем Вы нуждаетесь в своей определенной ситуации. В целом это - принятая практика, чтобы объявить членские переменные как частные и включить внешний доступ через свойства. Кроме того, некоторые инструменты (например, некоторые картопостроители O/R) ожидают, что данные объектов будут представлены свойствами, и не распознают общедоступные или защищенные членские переменные. Но если Вы знаете, что хотите, чтобы Ваши подклассы (и ТОЛЬКО Ваши подклассы) получили доступ к определенной переменной, нет никакой причины не объявить его, как защищено.
Почему для Response.Buffer установлено значение true?
Вы не можете просто добавить заголовок «Accept-Ranges», если не убедитесь, что сервер поддерживает запросы диапазона HTTP. Если клиентский проигрыватель требует поддержки запросов диапазона, а сервер отказывается их обрабатывать, кажется логичным, что запрос будет отклонен.
Вы можете попробовать использовать Fiddler в качестве обратного прокси и посмотреть, делает ли IPhone запрос диапазона. http://www.fiddler2.com/Fiddler/Help/ReverseProxy.asp
Используйте что-то вроде Fiddler, чтобы открыть точный HTTP-ответ, исходящий от серверов. Подделайте строку User-Agent клиента, чтобы она соответствовала браузеру iPhone (или просто используйте Safari?), И сравните вывод IIS 5.1 и 7.5. Очевидно, потоки ответов не идентичны, иначе он будет работать на обоих.
Вы также можете использовать NetMon, который является отличным инструментом ... и позволит вам протестировать сам iPhone.
Извините, я не знаю ' У меня нет для вас конкретного ответа, но я думаю, вам придется запачкать руки этим.
После некоторого поиска я наткнулся на статью Запросы, зависящие от диапазона в ASP.NET , в которой подробно описывается возникшая у меня проблема. Реализация класса RangeRequestHandlerBase с этого сайта (с некоторыми незначительными изменениями для соответствия существующей структуре проекта), похоже, решила проблему, и теперь воспроизведение видео работает правильно с IIS5 / 6.
@Eric - Я' я поддержал ваш ответ, поскольку ваш комментарий был толчком в правильном направлении. Простого добавления заголовка Accept-Ranges было недостаточно (несмотря на то, что он работал в IIS7), и обработчик http необходимо было изменить для обработки запросов диапазона и обеспечения отправки правильных данных.