Пути *
и *.
на самом деле не являются "подстановочными" сопоставлениями в смысле соответствия некоторого шаблона в вашем 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, чтобы разобраться с ними (мне потребовалось несколько чтений, чтобы материал погрузился), но придерживайтесь его.