Web服务器更改名称,url返回错误的主机名

时间:2009-01-16 22:44:13

标签: asp.net iis hostname

在我们的Web应用程序(asp.net)中,选项卡是动态链接。这些链接是这样构建的:

finalUrl = "https://" + Request.Url.Host + "/home.aspx";

链接最终如下:

https://server0/home.aspx

问题是Web服务器的名称是server0,但现在它已更改为server1。仍然旧的服务器名称不断出现。任何人都可以帮助指出我们错过的地方吗?

(etc / hosts设置正确)

谢谢!

7 个答案:

答案 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”的后续引用将反映该值。