IIS, выбрасывающий HTTP 404, не найден, но ресурс существует. Запрашиваемый URL-адрес также меняется автоматически.
Я сталкиваюсь с действительно странным сценарием с моим локальным IIS. Я разместил несколько сайтов на веб-сайте по умолчанию в моем локальном IIS. У одного из них есть страница входа. Со страницы входа в систему я перенаправляю пользователя на другую страницу, которая находится на другом сайте (который также размещен в том же IIS в виртуальном каталоге веб-сайта по умолчанию).
Теперь в событии нажатия кнопки "Отправить" на моей странице входа в систему, после аутентификации пользователя, я написал " Response.Redirect (redirect_url) ". redirect_url формируется динамически и передается в качестве параметра методу Redirect.
Во время отладки последний redirect_url, который отправляется в качестве параметра методу Redirect:
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
Но после того, как я пытаюсь перейти к следующему шагу, я неожиданно получаю сообщение об ошибке HTTP 404 о том, что ресурс не существует, и я заметил, что запрашиваемый URL-адрес, показанный на странице ошибки, отличается от того, что был динамически отправлен в ответ.Redirect (...) метод.
На странице ошибки запрошенный URL показывает значение как
http://localhost/CP/web/console/localhost/CPLogin?err=5
тогда как мой фактический запрошенный URL, сформированный в коде:
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
Я просто не могу понять, почему запрашиваемый URL-адрес изменяется автоматически. Кроме того, я наблюдаю, что "localhost" снова добавляется к запрошенному URL, что не должно происходить.
Пожалуйста, посетите ЭТУ ссылку [^], чтобы понять этот вопрос более четко. Я добавил скриншот страницы ошибки.
Большое спасибо.!
2 ответа
Действительно, проблема была в том, как я размещал сайты в своем приложении. Я просто удалил все сайты, связанные с моим приложением, из IIS, а затем снова разместил их все гораздо более тщательно. Это решило проблему "неправильный URL перенаправления".
Кроме того, у меня было несколько таблиц с пропущенными обязательными данными, из-за которых я получал код ошибки.
Поэтому после того, как я заполнил все таблицы необходимыми данными, а также после правильного размещения приложения в IIS, моя проблема была решена.
В IIS перейдите в соответствующую папку, щелкните правой кнопкой мыши и "просмотрите". Проверьте, что это за URL. В большинстве случаев это связано с тем, что в URL должен быть добавлен номер порта. Например, это будет что-то вроде:
http://localhost:<port number>/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
вместо
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008