题
在我们的网络应用程序(asp.net),翼片是动态链接。的链接被建立这样的:
finalUrl = "https://" + Request.Url.Host + "/home.aspx";
的链路弄成:
https://server0/home.aspx
问题是web服务器的名字是server0对,但现在又改为server1的。还是老的服务器名称保持显示出来。任何人都可以帮助指出,我们错过了吗?
(etc / hosts中有正确的设置)
谢谢!
解决方案 7
目前,当“Request.Url.Host”被引用的时候,主机名称已经改回旧的服务器。
我发现这个问题在于Metabase.xml中,其中所述宿主选自,如果使用相对URL萃取。然后的“Request.Url.Host”随后的参考将反映值。
其他提示
我可以假设,有你没有使用一个很好的理由相对URL 一>
如果使用asp.net作为标记,你不看使用的 HttpRequest.ApplicationPath ? (使用的System.Web)
是网站仍然可以通过旧的URL访问?该属性是基于关闭输入的网址,它是在服务器的不是名称。
鸽子,我提出了一些简化出来。该标签将指向另一个虚拟目录中的相同的机器上。
约翰,不,它不是通过旧主机名进行访问。
使用一个程序像Firefox的Firebug看请求头。然后打开你的网页浏览器,您的应用程序。打开网络选项卡上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”。
作为一个方面说明,你一定要考虑使用的〜/绝对路径的选择,一个简单的例子:
string finalUrl = "~/home.aspx";
Response.Redirect(finalUrl);
有可能不使用相对URL很好的理由。我不是原来的开发商。而这只是代码工作无处不在,包括生产服务器,但这款一体机。只是想要得到它的底部。
不隶属于 StackOverflow