.net HttpHandlers передает запрос по конвейеру до IIS6

StackOverflow https://stackoverflow.com/questions/641754

  •  22-07-2019
  •  | 
  •  

Вопрос

Есть ли способ для обработчика Http передать запрос обратно по конвейеру в IIS 6 и позволить ему обработать запрос?

Например, если у меня установлен обработчик Http для глагола = " (подстановочный знак) " Путь = & Quot; (подстановочные) .txt & Quot;

У меня есть файл myunformated.txt, я бы хотел, чтобы IIS 6 отправил его пользователю, если к нему не прикреплены параметры строки запроса.

Есть идеи?

Это было полезно?

Решение

Ответ на ваш вопрос - нет. Это то, что интегрированный конвейер IIS7 достигает, но его нет в IIS6.

В этом конкретном случае с помощью context.Response.TransmitFile все получится, хотя вы должны рассмотреть возможность установки типа содержимого Response, заголовков charset и control cache, что-то вроде: -

HttpResponse Response = context.Response

Response.ContentType = "text/plain";
Response.CharSet = "Windows-1252";
Response.AddFileDependency(filePath);

// Set additional properties to enable caching.
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
Response.TransmitFile(filePath);

Это в значительной степени дублирует то, что будет делать обработчик статического содержимого IIS.

Другие советы

Почему бы просто: Response.TransmitFile? - обратите внимание, что в отличие от Response.WriteFile этот файл не загружает весь файл.

Возможно, вы захотите полностью избежать этого и указать ссылку на другое имя файла. Таким образом, вы получаете все, что вы хотели от IIS - особенно возобновление загрузки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top