У меня есть требование к моему новому проекту обслуживать некоторые «скрытые» активы (фактически просто спрятанные в каталоге App_Data) после определенной даты. До этого они должны вести себя так, будто их там нет.
Я уже сотню раз делал подобные вещи с объектом Page, но когда я начал работать над этим, я подумал о том, чтобы посмотреть на обработчики. Никогда не работая с ними (и немного запуганные ими), я был счастлив, обнаружив, что они обслуживают мои файлы XML и JPG без издержек на весь класс Page. Я уже счастлив, что обдумал это. Я написал его для работы с такими функциями, как «MyHandler.ashx? Secretfile = blah.xml», и он отлично работал.
Затем я начал изучать обработку специальных расширений, чтобы обработчик получал запрос на "blah.xml.secret" и возвращал blah.xml после проверки даты. Несколько огней погасли в моей голове, и я переработал код, чтобы он справился с этим делом. Сработало (в IDE)! Я был очень взволнован.
Получение его на dev-сервере (IIS) было немного другим: мне пришлось зарегистрировать .secret как тип .NET (ничего страшного), и он все еще не работал, пока я не снял флажок «проверка файла существует» флажок. (Очевидно, что blah.xml.secret не существует: blah.xml существует, но не в том месте, о котором его просят, а только в защищенном каталоге App_Data.) Это не так уж и много, но теперь мое умное решение основано на двух реализациях. детали со стороны IIS.
Итак, мой вопрос: это предполагаемое использование обработчиков в asp.net? Я искажаю это до неузнаваемости? Мне кажется, что я видел, как сайты делали подобные трюки в прошлом, но, с одной стороны, я пытаюсь сделать изменения IIS слишком сложными. В моих исследованиях по этому вопросу я не нашел руководства по использованию slam dunk 1-2-3 по использованию обработчиков, включающих такой пример, поэтому я подумал, что, возможно, я злоупотребляю этим или поступаю неправильно.