Можно ли заставить Intelligencia.UrlRewriter работать в IIS7?

Мы унаследовали приложение, которое использует модуль Intelligencia.UrlRewriter. Наша среда - это IIS7. Мы уже установили наш сайт для запуска в классическом пуле приложений asp.net(который, по-видимому, работает для многих из этих проблем). Однако мы по-прежнему не видим, чтобы URL-адреса в нашем приложении были перезаписаны.

Кто-нибудь сталкивался с этим?

Ответы

Ответ 1

Вам нужно определить конфигурацию в элементе system.webServer, например:

    <system.webServer>
         <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
  <add name="UrlRewriter" 
   type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
        </modules>
    </system.webServer>

Вы можете сохранить оба конфига. Вероятно, теперь у вас есть:

<httpModules>
      <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
        </httpModules>

Отметьте раздел "Перенос приложений ASP.NET в IIS 7.0 Integrated mod" на http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

пс. Я использую его без каких-либо проблем, если этот конфиг включен.

Обновить 1: Также проверьте http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx, в частности "Подход 3: Использование HttpModule для выполнения расширения- Less URL Rewriting with IIS7", так как добавленная конфигурация имеет конфигурацию без расширения.

Ответ 2

Да. У меня была такая же проблема с модулем Intelligencia.UrlRewriter, работающим под Win Vista и IIS7, однако переключение на классический пул приложений asp.net устранило проблему. Вы запускаете приложение в новом виртуальном каталоге? Это может иногда испортиться с корневым путем к приложению, которое может повлиять на правила в web.config

Ответ 3

Я заметил ту же проблему, после нескольких попыток выяснилось, что изменение режима asp для интегрированного конвейера помогло.

Ответ 4

Не забудьте добавить следующие строки в разделе system.webServer вашего файла web.config, если вы используете IIS7

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>

Как и в

http://frozengraphics.wordpress.com/2009/12/06/intelligencia-urlrewriter-and-iis7/