0

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

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

该链接最终如下:

https://server0/home.aspx

问题是 Web 服务器的名称是 server0,但现在它已更改为 server1。旧的服务器名称仍然出现。谁能帮忙指出我们错过的地方?

(etc/hosts 设置正确)

谢谢!

4

7 回答 7

1

我可以假设您不使用相对 URL是有充分理由的吗?

于 2009-01-16T23:15:20.857 回答
0

如果使用 asp.net 作为标记,您不会考虑使用HttpRequest.ApplicationPath吗?(使用 System.Web)

于 2009-01-16T23:05:44.243 回答
0

该网站是否仍可通过旧 URL 访问?该属性基于输入的 URL,而不是它所在的服务器的名称。

于 2009-01-16T23:07:30.217 回答
0

鸽子,我做了一些简化。该选项卡将指向同一台机器上的另一个虚拟目录。

约翰,不,它不能通过旧主机名访问。

于 2009-01-16T23:13:34.010 回答
0

使用类似 FireBug for FireFox 的程序来查看请求标头。然后打开您的网络浏览器并转到您的应用程序。打开 FireBug 上的 Net 选项卡以查看请求值。例如,在这个网站上,我可以看到:

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”。

作为旁注,您绝对应该考虑使用 ~/ 绝对路径选项,一个简短的示例:

string finalUrl = "~/home.aspx";
Response.Redirect(finalUrl);
于 2009-01-16T23:47:48.653 回答
0

不使用相对 url 可能有充分的理由。我不是最初的开发者。只是代码在任何地方都可以工作,包括生产服务器,但只有这台机器。只是想深入了解它。

于 2009-01-17T00:13:12.003 回答
0

在引用“Request.Url.Host”时,主机名已经改回旧服务器。

我发现问题出在 Metabase.xml 中,如果使用相对 url,则从中提取主机。那么后面对“Request.Url.Host”的引用就会体现出这个值。

于 2009-01-19T17:56:38.417 回答