В IIS у меня есть веб-сайт с приложением .Net, доступный следующим образом:
http://site1.example.com/myapp
Сайт требует аутентификации, поэтому, когда я получаю к нему доступ, он, как и ожидалось, перенаправляет http://site1.example.com/myapp/login.asx
Я экспортировал конфигурацию, а затем использовал файл для создания нового сайта на том же сервере. Теперь, когда я захожу на новый сайт по адресу http://site2.example.com/myapp, он перенаправляется на http://site2.example.com/MYAPP/login.aspx. Обратите внимание на верхний регистр имени приложения.
Прежде чем я импортировал файл конфигурации xml, я отредактировал его, чтобы установить другой корневой каталог для приложения (где я поместил копию существующего), так что это не проблема.
Когда я смотрю в MetaBase.xml, AppRoot для виртуального каталога на вновь созданном сайте был установлен на / LM / W3SVC / 1584782141 / Root /MYAPP, а в экспортированном XML-файле, а также в Metabase.xml, но для исходного виртуального каталога в нижнем регистре, как и должно быть.
Я отредактировал MetaBase.xml (в IIS разрешено онлайн-редактирование метабазы) и сохранил его. Никаких изменений. Я перезагрузил метабазу, исправление внесено, но оно просто не работает - оно всегда перенаправляет на версию URL с заглавной буквы.
Это происходит только при перенаправлении на login.aspx. Если я попал прямо на страницу входа, т.е. я ввожу URL-адрес в браузере, он останется таким, каким я его ввел.
Кроме того, если я попадаю на «незащищенную» страницу в каталоге, регистр сохраняется в должном порядке.
Есть идеи, где еще я могу исправить эту проблему?
Я обнаружил точно такую же проблему в IIS 6. Я нашел несколько ссылок на эту проблему в другом месте в Интернете; Я не думаю, что слишком много людей делают это, чтобы столкнуться с ошибкой. Исправление состоит в том, чтобы разрешить прямое редактирование метабазы, а затем отредактировать ее, чтобы изменить регистр AppRoot на правильный регистр.
Вы говорите, что сделали. У меня это всегда работает; так мы привлекаем новых клиентов в нашу среду. Попробуйте перезапустить пул приложений и убедитесь, что вы очистили кеш и файлы cookie в своем браузере (ах).
Я согласен с комментариями mfinni. То, что вы сделали, должно было сработать. Это произойдет только при перенаправлении, поэтому этого не произойдет, если вы нажмете URL-адрес напрямую, но это произойдет, когда ASP.NET выполнит перенаправление на страницу входа.
Я предлагаю поискать в остальной части метабазы другие ссылки. Возможно, вы поймали одного из двух. Затем выполните перезапись пула приложений (в крайнем случае - iisreset). Если вы подтвердите, что MYAPP в верхнем регистре не существует в метабазе, вы должны установить его после перезапуска пула приложений.