Вы можете создать собственный обработчик http, реализовав System.Web.IHttpHandler. Метод ProcessRequest (контекст HttpContext) - это место, где вы будете писать свой код для извлечения файлов из базы данных. Поскольку BITS работает с запросами диапазона, вам необходимо проанализировать значение context.Request.Headers ["Range"], чтобы получить запрошенные начальный и конечный байты. В ProcessRequest вы можете прочитать двоичный файл из базы данных с помощью метода SqlCommand.ExecuteReader (CommandBehavior.SequentialAccess) и установить полученный двоичный файл в context.Response.OutputStream. Не забудьте вызвать context.Response.Flush () в конце.
Пользовательский HttpHandler будет обслуживать определенное расширение файла (например, «.file»). Вот что нужно сделать в IIS:
Обе версии IIS
- Добавить в раздел в web.config:
IIS 6.0
Добавить расширение .file (application / x-zip-compress) в качестве MIME-типа для веб-сайта.
Добавление расширения приложения (Свойства веб-сайта Виртуальный каталог Конфигурация Сопоставления)
Расширение: .file
Путь к исполняемым файлам:% windir% \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll
% Windir% \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll
IIS 7.0
- Добавить в раздел в web.config:
Добавить в раздел в web.config:
<mimeMap fileExtension=".file" mimeType="application/x-zip-compressed" />
Надеюсь, этого достаточно, чтобы вы начали.