Веб-сервер изменил имя, URL вернул неверное имя хоста - PullRequest
0 голосов
/ 17 января 2009

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

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

Ссылка заканчивается как:

https://server0/home.aspx

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

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

Спасибо!

Ответы [ 7 ]

1 голос
/ 17 января 2009

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

0 голосов
/ 19 января 2009

Во время обращения к «Request.Url.Host» имя хоста уже заменено на старый сервер.

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

0 голосов
/ 17 января 2009

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

0 голосов
/ 17 января 2009

Используйте программу вроде FireBug for 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);
0 голосов
/ 17 января 2009

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

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

0 голосов
/ 17 января 2009

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

0 голосов
/ 17 января 2009

Если вы используете asp.net в качестве тега, не хотите ли вы использовать HttpRequest.ApplicationPath ? (С использованием System.Web)

...