Веб-сервер изменил имя, URL возвращает неправильное имя хоста

StackOverflow https://stackoverflow.com/questions/452322

  •  19-08-2019
  •  | 
  •  

Вопрос

В нашем веб-приложении (asp.net) вкладки представляют собой динамические ссылки.Ссылки были построены следующим образом:

finalUrl = "https://" + Request.Url.Host + "/home.aspx";

Ссылка заканчивается следующим образом:

https://server0/home.aspx

Проблема в том, что имя веб-сервера было server0, но теперь оно было изменено на server1.По-прежнему продолжает отображаться старое имя сервера.Кто-нибудь может помочь указать, где мы промахнулись?

(etc /hosts имеет правильную настройку)

Спасибо!

Это было полезно?

Решение 7

В то время, когда упоминается "Request.Url.Host", имя хоста уже изменено на прежний сервер.

Я обнаружил, что проблема заключается в Metabase.xml, откуда извлекается хост, если используется относительный URL.Тогда последующая ссылка "Request.Url.Host" будет отражать это значение.

Другие советы

Могу ли я предположить, что есть веская причина, по которой вы не используете относительные URL-адреса?

Если использовать asp.net как помеченный, не рассматривали бы вы использование HttpRequest.Путь к приложению ?(Используя System.Web)

Доступен ли сайт по-прежнему по старому URL-адресу?Это свойство основано на введенном URL-адресе, а не на имени сервера, на котором оно находится.

голубка, я сделал из этого некоторое упрощение.Вкладка будет указывать на другой виртуальный каталог на том же компьютере.

Джон, нет, это недоступно через старое имя хоста.

Используйте программу, подобную FireBug для FireFox, чтобы увидеть заголовок запроса.Затем откройте свой веб-браузер и перейдите в свое приложение.Откройте вкладку Net в FireBug, чтобы просмотреть значения запроса.Например, на этом веб-сайте я могу видеть:

Host stackoverflow.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 (.NET CLR 3.5.30729)
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
...

Таким образом, я бы ожидал, что Request.Url.Host будет "stackoverflow.com".

В качестве дополнительного примечания вам обязательно следует рассмотреть возможность использования опции ~/ absolute path, краткий пример:

string finalUrl = "~/home.aspx";
Response.Redirect(finalUrl);

Вероятно, есть веская причина не использовать относительный URL.Я не являюсь первоначальным разработчиком.И дело просто в том, что код работает везде, включая производственные серверы, но только не на этой машине.Просто хочу докопаться до сути этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top