Можно ли заставить 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/