Тестирование нескольких доменов с использованием сервера разработки ASP.NET - PullRequest
4 голосов
/ 25 марта 2010

Я занимаюсь разработкой одного веб-приложения, которое будет динамически менять свой контент в зависимости от того, какое доменное имя используется для доступа к сайту. Несколько доменов будут указывать на одно и то же приложение. Я хочу использовать следующий код (или что-то близкое) для определения имени домена и выполнения настроек:

string theDomainName = Request.Url.Host;

switch (theDomainName)
{
  case "www.clientone.com":
    // do stuff
    break;
  case "www.clienttwo.com":
    // do other stuff
    break;
}

Я бы хотел проверить работоспособность вышеперечисленного с помощью сервера разработки ASP.NET. Я создал сопоставления в локальном файле HOSTS для сопоставления www.clientone.com с 127.0.0.1 и www.clienttwo.com с 127.0.0.1. Затем я перехожу к приложению с помощью браузера, используя www.clinetone.com (и т. Д.).

Когда я пытаюсь протестировать этот код с помощью сервера разработки ASP.net, в URL всегда указывается localhost. Он НЕ захватывает хост, введенный в браузере, только localhost.

Есть ли способ протестировать функциональность определения URL с помощью сервера разработки?

Спасибо.

1 Ответ

7 голосов
/ 01 апреля 2010

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

Это НЕ работает, и повторяет только 127.0.0.1 localhost, на котором работает сервер разработки ASP.

 Request.Url.Host;

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

 HttpContext.Current.Request.Headers.Get("Host").ToString();  

Итак, решение для тестирования нескольких доменов на сервере Dev:

  1. создать несколько тестовых доменов в файле HOSTS на вашем локальном компьютере, указывая на 127.0.0.1
  2. используйте синтаксис Headers.Get ("Host"), чтобы прослушать домен, введенный в браузерконкретный порт, на котором работает сервер разработки ASP.

    Пример: если у вас есть файл hosts www.mytestdomain.com, указывающий на 127.0.0.1, и ваш сервер разработкиработает на порту 46146, затем вы должны ввести в браузер следующее для тестирования: http://www.mytestdomain.com:46146/

    Но все равно работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...