Различение статических файлов и страниц asp.net в httpmodule - IIS7 - PullRequest
0 голосов
/ 20 мая 2011

В интегрированном режиме IIS7, особенно в ASP.NET MVC и .NET4, все модули выполняются для всех запросов. runAllManagedModulesForAllRequests = "истина". заставляя runAllManagedModulesForAllRequests = "false" дать мне голову и слишком много вопросов об этом, пока я не запутался.

Итак, чтобы сделать это проще, просто позвольте моему модулю принимать все запросы, включая статический файл, но в модуле, таком как BeginRequest, я хочу обрабатывать, только если это не статический файл. Как отфильтровать или проверить это условие в модуле?

1 Ответ

5 голосов
/ 11 августа 2011

Это не совсем отвечает на ваш вопрос, но, поскольку никто не ответил, у меня есть то, что возможно может быть частью решения.

Если вы разделите свой модуль на два,один для запросов управляемого обработчика, а другой для всего остального, затем в вашем файле web.config, куда вы добавляете свой модуль «запрос управляемого обработчика», вы можете добавить атрибут preCondition = «managedHandler».Таким образом, это выглядело бы так:

    <system.webServer>
      <modules>
        <add name="DynamicRequestModule" type="..." preCondition="managedHandler" />
        <add name="StaticRequestModule" type="..." />

При данной конфигурации модуль «DynamicRequestModule» будет выполняться только тогда, когда запрос относится к ресурсу, который имеет управляемый обработчик.

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