40

我有一个具有路径的本地应用程序:

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://

只是不想冒险。于是问了这个傻问题。

4

3 回答 3

53

是的,只要您在浏览器 www.someshopping.com 中键入的 url 并且您没有使用 url 重写然后

string currentURL = HttpContext.Current.Request.Url.Host;

将返回www.someshopping.com

注意本地调试环境和生产环境的区别

于 2012-11-07T15:59:46.847 回答
18

Host属性将返回您在访问该站点时使用的域名。所以,在你的开发环境中,因为你要求

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

它回来了localhost。您可以像这样分解您的 URL:

Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen
于 2012-11-07T15:59:55.753 回答
8

试试这个:

string callbackurl = Request.Url.Host != "localhost" 
    ? Request.Url.Host : Request.Url.Authority;

这将适用于本地和生产环境。因为本地使用带有端口号的 url,所以使用 Url.Host 是可能的。

于 2015-10-07T07:46:21.113 回答