如何配置要在多个域上托管的单个ASP .NET应用程序?

时间:2017-08-14 13:06:01

标签: c# asp.net web-services

我有一个网站可以调用多个网络服务,网站托管在不同的环境中,例如:

https://production.domain.com
https://uat.domain.com
https://dev.domain.com

每个网站都会调用托管在同一环境中的网络服务:

https://production.domain.com/rest/
https://uat.domain.com/rest/
https://dev.domain.com/rest/

如何在托管应用程序的上下文中将我的Web服务URL定义为相对URL?我是否需要任何IIS配置才能实现此目的? 结果将是:

https://production.domain.com => https://production.domain.com/rest

我的代码中的web.config和IF语句中有多个URL组合,这是我想要考虑的最后一件事。

1 个答案:

答案 0 :(得分:1)

如果被调用的Web服务的URL与调用Web服务的Web应用程序的请求的URL之间始终存在一对一的关系,那么您应该能够为Web编写URL服务相对容易。如果您需要完全限定的URL,那么您可以从Request.Url开始,以获取对网站的传入请求,例如:

var uriBuilder = new UriBuilder(Request.Url);
uriBuilder.Path = "/rest";
var uriForRestService = uriBuilder.ToString();

使用UriBuilder的实例可以保留协议,主机以及任何自定义端口(例如,如果您使用的是Visual Studio / IIS Express,因此具有test.domain.local:4321种URL )尽管如果你有需要,你可以沿着抓住Request.Url.Authority并自己构建其余URL的路线走下去。