Мы пытаемся написать сервер обновлений для нашего программного обеспечения, используя компонент TIdHTTPServer. В настоящее время мы обслуживаем файл XML, в котором перечислены доступные обновления и их версии файлов и т.д., Когда клиентская программа находит обновленную версию, она должна начать ее загружать с помощью BITS.
Теперь у нас есть проблема, наши программы запрашивают XML файл и видят, что доступно обновление. Затем он создает задание BITS для его загрузки, однако BITS продолжает сообщать, что загрузка не удалась. Мы можем загрузить файл с использованием того же URL-адреса и IE/Firefox/Chrome.
так что мой вопрос:
Совместим ли TIdHTTPServer с BITS?
Я спрашиваю об этом, поскольку я обнаружил, что есть требования к загрузке битов для работы.
Требования HTTP для загрузки BITS
BITS поддерживает загрузку и загрузку HTTP и HTTPS и требует, чтобы сервер поддерживал протокол HTTP/1.1. Для загрузки метод Header HTTP-сервера должен возвращать размер файла, а метод Get должен поддерживать заголовки Content-Range и Content-Length. В результате BITS передает только содержимое статического файла и генерирует ошибку, если вы пытаетесь передать динамический контент, если ASP, ISAPI или CGI script не поддерживают заголовки Content-Range и Content-Length.
BITS может использовать сервер HTTP/1.0, если он удовлетворяет требованиям метода Head и Get.
Чтобы поддерживать загрузку диапазонов файла, сервер должен поддерживать следующие требования:
Разрешить заголовкам MIME включать стандартные заголовки Content-Range и Content-Type плюс максимум 180 байтов других заголовков. Разрешить максимум два CR/LF между заголовками HTTP и первой граничной строкой.