3

长话短说,我正在调用的不同环境(dev/staging/uat/live)的 API 是通过在服务器上放置主机记录来设置的,以便实时域解析到它们的其他服务器以进行 HTTP 请求。

问题是他们已经在许多不同的环境中完成了这项工作,以至于我们没有足够的服务器来使用服务器范围的主机文件了(我们有一些环境在相同的服务器上运行 - 幸运的是不是开发和虽然生活:P)。

我想知道是否有办法向域发出 WebRequest 请求,但明确指定它应该连接到的服务器的 IP?或者有没有办法做到这一点,而不是一直到套接字连接(我真的不希望通过尝试重新实现 HTTP 协议来浪费时间/创建错误)。

PS:我已经尝试过了,我们不能只为每个环境获取一个新的子域。

4

2 回答 2

1

欺骗 HTTP 主机标头的一种方法是将代理设置为您希望将请求发送到的实际服务器。就像是

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

可能很好用。

于 2010-07-27T10:30:14.617 回答
0

有一些方法可以控制配置值。

  1. 您在 .NET 中启用了条件编译,您可以在其中创建配置集并创建可以使用特定域而不是更改其解析策略的指令。例如,在调试中,您可以使用 x.com,而在发布模式下,您可以使用 y.com,只要您需要引用您的 url。
  2. Web.config 和 app.config 现在支持根据所选配置进行更改,您可以拥有 web.debug.config 和 web.release.config 并且您可以在此处指定不同的 url 引用。
于 2010-07-27T10:55:01.410 回答