我有一个网站可以调用多个网络服务,网站托管在不同的环境中,例如:
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组合,这是我想要考虑的最后一件事。
答案 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的路线走下去。