У меня есть сайт, использующий ISAPI Rewrite , а также пользовательский модуль HttpModule, который одновременно выполняет перенаправление и перезапись Url.
В IIS 6 все работало нормально: сначала запускался фильтр перезаписи ISAPI, а затем модуль HttpModule.В IIS 7 (интегрированный режим) порядок теперь обратный, что создает проблему.
Моя проблема, в частности, заключается в том, что HttpModule имеет условие, при котором он генерирует перезапись URL-адреса с использованием context.RewritePath
.Он явно добавит «index.aspx» к пути, если документ не был предоставлен, поэтому запрос к /test/
переписывается в /test/index.aspx
.
В какой-то момент после того, как путь переписан, ISAPI Rewriteфильтр выполняется.У нас есть правило, противоположное модулю: запрос на /test/index.aspx
перенаправляется 301 на /test/
.Таким образом, у нас есть бесконечный цикл.
Как определяется порядок выполнения HttpModules и ISAPI-фильтров в IIS 7? Можно ли изменить порядок?Я нашел этот вопрос , но это не очень помогло.Я не владелец IIS 7, но я до некоторой степени понимаю, что модули и фильтры ISAPI работают «вместе».К сожалению, они все еще управляются по-разному, и я не могу понять, как заставить одного работать раньше другого.Справка!
Примечание: предположим, я не могу изменить существующий код.Это работало в IIS 6. Я просто хочу знать, есть ли способ заставить его работать в интегрированном режиме IIS 7.