.net HttpHandlers передает запрос по конвейеру до IIS6 - PullRequest
0 голосов
/ 13 марта 2009

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

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

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

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 13 марта 2009

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

В этом конкретном случае с помощью context.Response.TransmitFile все получится, хотя вы должны рассмотреть возможность установки типа содержимого Response, заголовков charset и 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.

1 голос
/ 13 марта 2009

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

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

...