У меня есть сайт, работающий под ASP .NET 2 / IIS7 / Vista. У меня есть модуль перезаписи URL, который позволяет мне иметь URL без расширения. Чтобы заставить это работать, я настроил раздел system.webServer файла конфигурации так, чтобы все запросы пересылались в aspnet_isapi.dll. Я также добавил модуль перезаписи URL-адресов в раздел модулей и установил для runAllManagedModulesForAllRequests значение true.
Когда я запускаю веб-сайт и посещаю одну из страниц, где используется перезапись URL-адреса, страница отображается правильно. Однако, если я затем посещаю другую страницу, сайт перестает работать, и я получаю 404 не найден. Я также обнаружил, что моя точка останова в модуле перезаписи URL не получает удар. Похоже, что IIS перенаправляет первый запрос переписывающему устройству, но последующие отправляются куда-то еще - на странице ошибки упоминается Notification как MapRequestHandler, а Handler как StaticFile.
Если я затем внесу небольшое изменение в файл web.config и сохраню его, после чего перезагрузим веб-сайт, я смогу перезагрузить страницу в браузере, и все заработает. Затем я нажимаю другую ссылку, и она снова не работает.
Для справки, вот пара фрагментов из файла конфигурации. Сначала под system.web:
<httpModules>
<add name="UrlRewriteModule" type="Arcs.CoopFurniture.TelesalesWeb.UrlRewriteModule, Arcs.CoopFurniture.TelesalesWeb" />
</httpModules>
и затем в system.webServer:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRewriteModule" type="Arcs.CoopFurniture.TelesalesWeb.UrlRewriteModule, Arcs.CoopFurniture.TelesalesWeb" preCondition="managedHandler" />
</modules>
<handlers>
<add name="AspNet" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
</system.web>
Сайт работает в классическом, а не в интегрированном режиме конвейера.
У кого-нибудь есть идеи? Я подозреваю, что моя конфигурация где-то неверна, но я не могу найти где.