(Я не знаю, следует ли мне также публиковать этот вопрос в ServerFault, поскольку он касается конфигурации IIS?)
В IIS7 мы можем указать модулю запускаться для управляемого содержимого (тем самым ускоряя обслуживание статического содержимого) с помощью:
<modules>
...
<add name="WhateverName"
type="WhateverType"
preCondition="managedHandler"
...
</modules>
Но. Это отлично работает, пока в запрошенном URL есть имя файла (с расширением). Если он не указан, IIS7 подумает, что вам нужен статический контент, а управляемые модули работать не будут.
http://localhost/ <-- this one will skip managed handlers
http://localhost/default.aspx <-- this one will run them
Если я вручную установил документ IIS7 по умолчанию, поэтому первым будет default.aspx
, Я не вижу разницы, разницы нет. Для меня это выглядит, ходит и звучит как ошибка. И это ошибка! Почему? Потому что, когда я запрашиваю первый, это управляемый запрос, не так ли. Конечно, это является. Но IIS7 рассматривает его как статический запрос. Так? Это ошибка. Этот запрос следует рассматривать как управляемый.
Как мне убедить IIS7 запускать управляемые обработчики для URL-запросов без имен файлов внутри?
Помогите с мышлением
Позвольте мне немного помочь вам подумать: если бы я переупорядочил system.webServer/handlers
, я уверен, что смогу решить эту проблему. Перед последним обработчиком StaticFile
, который указывает на StaticFileModule
, DefaultDocumentModule
и DirectoryBrowsingModule
, я должен запустить интегрированный обработчик asp.net для запросов Каталога. Или напишите свой собственный обработчик, который будет добавлять документ по умолчанию к любому запросу каталога. Я почти уверен, что один из них должен решить эту проблему. Но как мне его настроить / разработать?