Значение атрибута пути на обработчиках в web.config - PullRequest
8 голосов
/ 12 августа 2011

Я смотрю на конфигурацию IIS7.5 (system.webServer / handlers).

Знаете ли вы, в чем разница между \*. и \* в аргументе пути для обработчиков? Не могли бы вы использовать file.* (для сопоставления file.txt и file.xml) или abc.a?c (для сопоставления abc.abc и abc.asc)?

Может ли аргумент пути ссылаться на "папку"? как \*\f4\*.txt?

С учетом http-запроса, например

    GET \f1\f2.f3\f4\a.b.c?arg1.arg2.arg3=3&arg4.txt=1.4

Какой части пытается сопоставить аргумент пути?

1 Ответ

7 голосов
/ 12 августа 2011

Пути * и *. на самом деле не являются "подстановочными" сопоставлениями в смысле соответствия некоторого шаблона в вашем URL.

Обработчик * обрабатывает запросы для всего содержимого, которое не 'не совпадает ни с одним путем (или глаголом / предусловием), уже указанным в обработчиках HTTP для сайта.Список обработчиков HTTP на самом деле является упорядоченным списком, представление по умолчанию в MMC IIS7 может вводить в заблуждение, если вы сортируете по пути.Чтобы увидеть истинный порядок обработки, вам нужно щелкнуть ссылку * Просмотреть упорядоченный список "в правой части панели действий.

Когда вы сделаете это, вы увидите, что обработчик * стоит последним и вызываетсяобработчик StaticFile. Могут быть и другие, такие как TRACEVerbHandler и OPTIONSVerbHandler, которые отвечают только на глаголы TRACE и OPTIONS, которые обычно игнорируются, поскольку они не выполняются при нормальной работе.

Обработчик *. относится к ASP.NET 4.0 и добавляется при установке ASP.NET 4.0. Этот обработчик предназначен для поддержки URL-адресов без расширений. Изначально этот обработчик ничего не делает и вступает в действие только тогда, когдаВы устанавливаете KB980368 исправление (которое также входит в состав Windows 2008R2 / Windows 7 с пакетом обновления 1).

Есть пара замечательных статей Томаса Марквардта о*. обработчик и URL-адреса без расширений:

Как работает маршрутизация ASP.NET MVC и ее влияние на выполнение статических запросов
Как обрабатываются URL-адреса без расширений в ASP.NET v4

Изначально в этих статьях достаточно много полезного, и вам, возможно, придется пересмотреть основыIIS7, чтобы разобраться с ними (мне потребовалось несколько чтений, чтобы материал погрузился), но придерживайтесь его.

...