Я думаю в любом случае вам придется сделать Решение 1 .
Рассмотрим конвейер HTTP-запроса.
- Запрос поступает в IIS.
- IIS проверяет порт / заголовок узла, чтобы определить, настроен ли веб-сайт для сбора запросов на этот заголовок / порт узла.
- IIS исследует расширение файла запроса (.php, .asp, .aspx) и передает его ISAPI, который может обработать запрос такого типа.
Только в этот момент включается ASP.NET (или среда выполнения PHP). Если IIS не имеет такого сопоставления, он никогда не будет передавать запрос среде выполнения ASP.NET и запрос никогда не достигнет вашего кода. Вот почему вам нужно это отображение glob (*) для ISAPI ASP.NET.
ASP.NET MVC рамки URL часто заканчиваются без расширения файла вообще. Если вы хотите, чтобы эти запросы обрабатывались ASP.NET (или какой-либо другой средой выполнения), вы должны сопоставить все запросы независимо от расширения файла для этого ISAPI (то есть aspnet_isapi.dll).
Это часто также делается для HttpHandlers, которые должны обслуживать такие носители, как .jpg, .gif. Чтобы обработчик был поражен, он должен быть сопоставлен с вашим кодом, даже если .jpg не является «нормальным» расширением файла ASP.NET.
НТН,
Тайлер