我的本地应用程序有一条路径:
http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen
但是当它进入集成环境或生产时,它将类似于
http://www.someshopping.com/m/pages/SearchResults.aspx?search=knife&filter=kitchen
对于某些情况,我需要通过:
www.someshopping.com
到我的XSLT文件和我正在使用的函数之一:
string currentURL = HttpContext.Current.Request.Url.Host;
这会在本地环境中返回“ localhost ”。相同的代码会回复我:
生产中www.someshopping.com (我不需要 http:// )
只是不想冒任何风险。所以问这个愚蠢的问题。
答案 0 :(得分:39)
是的,只要您在浏览器www.someshopping.com中键入的网址并且您没有使用网址重写,那么
string currentURL = HttpContext.Current.Request.Url.Host;
将返回www.someshopping.com
请注意本地调试环境与生产环境之间的区别
答案 1 :(得分:17)
Host
属性将返回您在访问网站时使用的域名。因此,在您的开发环境中,因为您正在请求
http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen
它正在返回localhost
。您可以这样拆分您的网址:
Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen
答案 2 :(得分:6)
试试这个:
string callbackurl = Request.Url.Host != "localhost"
? Request.Url.Host : Request.Url.Authority;
这适用于本地和生产环境。因为本地使用url和端口号是不可能使用Url.Host。