Как избежать FriendlyUrl, чтобы скрыть Default.aspx

#c# #asp.net #redirect #web-config #friendly-url

Вопрос:

Мое небольшое веб-приложение работало хорошо до тех пор, пока некоторые пакеты не были обновлены вместе с другими проектами в том же решении, поэтому я на самом деле точно не знаю, когда, и теперь ничего не отображается.

По умолчанию. aspx не работает.

Чтобы быть точным, после нажатия клавиши F5 для отладки браузер запускается с localhost:12345/Default.aspx (поддельный номер порта).

Затем, вскоре после этого, браузер перенаправляется (статус 301) на локальный хост:12345/По умолчанию . На вкладке Сеть F12 DevTools значение по умолчанию имеет статус 200, но также равно нулю байтов.

Это пахнет как дружественный пакет Microsoft Nuget. Тем не менее, оказывается, что у меня всегда был FriendlyUrl в веб-проектах. Я никогда не программировал для FriendlyUrl, поэтому у меня нет необходимости в автоматическом переключении на страницы для мобильных устройств по сравнению с настольными и т. Д. Я ничего не имею против FriendlyUrl, но, как я вижу, он должен перенаправлять или переписывать Default на Default.aspx, а не наоборот. У меня также нет проблем с URL-адресами, заканчивающимися на .aspx .

Я попробовал несколько вещей:

  • Установите файл по умолчанию.aspx в качестве «Начальной страницы» в обозревателе решений с помощью меню правой мыши
  • добавьте правило перезаписи с <match url="Default" /><action type="Rewrite" url="Default.aspx"/>
  • укажите a <defaultDocument ... "Default.aspx" в файле web.config
  • отключите FriendlyUrl, закомментировав EnableFriendlyUrls() вызов в App_Start/RouteConfig.cs; это приведет к перенаправлению с Default.aspx на Default и 404 не найдено

Но ни один из них на самом деле не работал и не показывал мне содержимое Default.aspx.

Как мне это исправить?


Обновить:

Я обнаружил, что перед каждым экспериментом я должен очищать кэш браузера, чтобы забыть о постоянном перенаправлении 301 из предыдущей версии веб-проекта.

Я узнал, как остановить FriendlyUrl, просто установив значение AutoRedirectMode «ВЫКЛ.» в файле RouteConfig.cs.

Теперь проблема «просто» в том, как исправить нулевые байты тела ответа Default.aspx. . ..


Обновление 2:

Поскольку это очень маленький проект, я смог воссоздать его из пустого веб-проекта VS. Меньше сложности, меньше проблем. Проблема решена.

Мораль: не используйте модные демонстрационные проекты Visual Studio, если вам не нужны его функции, и особенно если вы их не понимаете …

Комментарии:

1. да, ctrl-F5 хорошо работает в браузере для очистки кэшированных URL-адресов и кода. Потратил целый день, не осознавая этого. Когда вы путаетесь с URL-адресами и «дружественными», предыдущие URL-адреса и данные кэшируются браузером. Действительно мерзко.