HttpWebRequest на другой IP, чем домен разрешает в - PullRequest
3 голосов
/ 18 марта 2010

Короче говоря, API, который я называю различными средами (dev / staging / uat / live), настраивается путем помещения записи хоста на сервер, чтобы действующий домен преобразовывался в другой сервер для запроса HTTP.

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

Мне интересно, есть ли способ сделать запрос WebRequest к домену, но явно указать IP-адрес сервера, к которому он должен подключиться? Или есть какой-то способ сделать это, если не пройти весь путь до сокетных соединений (что я действительно предпочел бы не тратить время / создавать ошибки, пытаясь повторно реализовать протокол HTTP).

PS: я пробовал, и мы не можем просто получить новый поддомен для каждой среды.

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Один из способов подделки заголовка хоста HTTP - установить прокси на тот сервер, на который вы хотите отправить запрос. Что-то вроде

request.Proxy = new WebProxy(string.Format("http://{0}/", hostAddress));

вполне может сработать.

0 голосов
/ 27 июля 2010

Существуют способы управления значениями конфигурации.

  1. В .NET включена условная компиляция, в которой вы можете создавать свои наборы конфигурации и создавать директивы, которые могут использовать конкретный домен вместо изменения стратегии разрешения. Например, в режиме отладки вы можете использовать x.com, а в режиме выпуска вы можете использовать y.com везде, где вам нужно ссылаться на ваш URL.
  2. Web.config и app.config теперь поддерживают изменения в соответствии с выбранной конфигурацией, у вас могут быть web.debug.config и web.release.config, и вы можете указать здесь разные ссылки на URL.
...