#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-адреса и данные кэшируются браузером. Действительно мерзко.