Использование хостинг-компаний «404 ошибка поведения» для реализации маршрутизации URL - PullRequest
0 голосов
/ 10 февраля 2010

Многие хостинговые компании позволяют вам определить, какая страница будет показана пользователю, если пользователь перейдет на страницу, которая не существует. Если вы определите некоторую страницу .aspx, она будет выполнена и будет показана.

Мой вопрос: почему бы не использовать это для маршрутизации? так как я могу разобрать URL пользователя и затем выполнить server.transfer на страницу, которую я хочу. Я проверил, и клиенту не было перенаправлено перенаправление, а заголовки http: HTTP / 1.1 200 OK.

Итак, это хорошая идея для серверов, которые не имеют ASP.NET 3.5 SP1 или если вы не используете MVC?

Спасибо

1 Ответ

1 голос
/ 10 февраля 2010

Вы "можете" сделать это, но почему бы просто не создать HttpModule и обработать там маршрутизацию? Вот как работает большинство систем перезаписи URL (на самом деле, так же работает MVC-маршрутизация, так как global.asax - это просто сборочный HttpModule с несколькими дополнениями).

Главное, что вы полагаетесь на тот тип обработки сервера, который вы описываете, это то, что вы действительно не контролируете его, и это хакерский механизм ... я имею в виду, что вы берете на себя функцию веб-сервера это имеет определенное назначение и дизайн, а также накладывает на него другое значение и функцию ... что означает, что у вас теперь нет встроенной обработки для фактической ошибки 404. Кроме того, механизм, который вы рассматриваете, сложнее адаптировать к вашей цели, чем просто используя другие доступные вам варианты.

Если вам не нужно что-то особенное от маршрутизации, вам следует рассмотреть возможность использования существующего компонента маршрутизации, такого как Mod-Rewrite или одного из дюжины или около того других популярных перезаписчиков URL, которые были созданы до того, как механизм маршрутизации MVC был реализован, и отлично работали в старых версии asp.net. Существуют также многочисленные учебные пособия по использованию HttpModules, HttpHandlers и различным другим методам маршрутизации в средах веб-формы asp.net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...