nic*_*ine 3 iis-6 asp.net-2.0 portforwarding
这是场景.我们有一个端口的路由器转发我们不同测试站点的请求.例如,http: //www.ourSite.com : 8051从路由器转发到端口80上的Web服务器.测试网站是在IIS6(Windows Server 2003)上运行的一个网站的虚拟目录.
我们的部分应用程序发送电子邮件,使用基本URL在应用程序中构建一些链接.这是我们在应用程序启动时构建的基本URL:
siteBaseUrl = string.Format("{0}://{1}{2}",
HttpContext.Current.Request.Url.Scheme,
HttpContext.Current.Request.Url.Authority,
HttpContext.Current.Request.ApplicationPath.TrimEnd('/'));
Run Code Online (Sandbox Code Playgroud)
所以,让我们说我们的测试网站之一看起来像这样,http://www.ourSite.com:8051/client1.我希望siteBaseUrl看起来像这样,http: //www.ourSite.com:8051/client1 ,实际上它最终看起来像这样http://www.ourSite.com/client1(我试过找一个像这个在StackOverflow上但没有找到.也许我没有用正确的关键词搜索,或者我需要更多的咖啡.对此事的任何帮助都将不胜感激.
HttpContext.Current.Request.Url基于IIS请求的资源,它不代表客户端请求Url.但是,您可以使用HTTP标头中的Host属性.
siteBaseUrl = string.Format("{0}://{1}{2}",
HttpContext.Current.Request.Url.Scheme,
HttpContext.Current.Request.Headers["host"],
HttpContext.Current.Request.ApplicationPath.TrimEnd('/'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2777 次 |
| 最近记录: |