在我们的Web应用程序(asp.net)中,选项卡是动态链接。这些链接是这样构建的:
finalUrl = "https://" + Request.Url.Host + "/home.aspx";
链接最终如下:
https://server0/home.aspx
问题是Web服务器的名称是server0,但现在它已更改为server1。仍然旧的服务器名称不断出现。任何人都可以帮助指出我们错过的地方吗?
(etc / hosts设置正确)
谢谢!
答案 0 :(得分:1)
我可以假设您没有使用relative URLs吗?
答案 1 :(得分:0)
如果使用asp.net作为标记,你不会使用 HttpRequest.ApplicationPath 吗? (使用System.Web)
答案 2 :(得分:0)
网站是否仍可通过旧网址访问?该属性基于输入的URL,而不是它所在服务器的名称。
答案 3 :(得分:0)
John,不,它无法通过旧主机名访问。
答案 4 :(得分:0)
使用FireBox等FireBox程序查看请求标头。然后打开Web浏览器并转到您的应用程序。打开FireBug上的“网络”选项卡以查看请求值。例如,在这个网站上我可以看到:
Host stackoverflow.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 (.NET CLR 3.5.30729)
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
...
因此我希望Request.Url.Host为“stackoverflow.com”。
作为旁注,你一定要考虑使用〜/ absolute path选项,一个简短的例子:
string finalUrl = "~/home.aspx";
Response.Redirect(finalUrl);
答案 5 :(得分:0)
可能有充分的理由不使用相对网址。我不是原始开发者。而且只是代码可以在任何地方工作,包括生产服务器,但这一台机器。只是想深究它。
答案 6 :(得分:0)
在引用“Request.Url.Host”时,主机名已更改回旧服务器。
我发现问题出在Metabase.xml中,如果使用了相对url,则从中提取主机。然后“Request.Url.Host”的后续引用将反映该值。