Сегодня утром я запустил в производство новый веб-сайт. Net (прошивка 4.6.1, ранее 4.5.1). IIS (я полагаю) удалил расширения со всех веб-страниц (ie. Index.aspx только что стал index). Эти веб-сайты работают уже более 8 лет с использованием перезаписи IIS. Похоже, что тогда IIS увидел веб-страницы "без расширений", перезапись была запущена и отправлена в несуществующее место, создавая 404.
Я также сделал Windows обновление 3 дня go (с тех пор мог пропустить эту проблему, но маловероятно). Правило перезаписи в основном гласит: если вы не можете найти страницу, ищите ее в подкаталоге «Клиенты». Правило выглядит так:
<rewrite>
<rules>
<rule name="Client Relocation" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" negate="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="Clients/{R:0}" />
</rule>
</rules>
</rewrite>
Мне удалось обойти проблему, удалив правило перезаписи в подкаталоге:
<rewrite>
<rules>
<remove name="Client Relocation" />
</rules>
</rewrite>
Итак, похоже, что расширение было удалено, тогда IIS получает страницу и думает, что ее не существует, поэтому правило перезаписи вступает в силу.
Итак, мой вопрос: кто / что удаляет расширение и как я могу остановить это?