【问题标题】:ResolveClientUrl in a virtual directory not pointing to domain rootResolveClientUrl 在不指向域根目录的虚拟目录中
【发布时间】:2012-05-13 07:13:47
【问题描述】:

我有一个网站,有以下虚拟目录,每个都配置为应用程序根目录:

  1. _root/website1
  2. _root/website2
  3. _root/website3

并且它们每个都有自己的指向域:

  1. www.website1.com
  2. www.website2.com
  3. www.website3.com

当我在 website1 调用 ResolveClientUrl("~/Default.aspx") 时,它返回:

/website1/Default.aspx

这是正确的,但浏览器会将用户指向:

http://www.website1.com/website1/Default.aspx

哪个不对,应该指向:

http://www.website1.com/Default.aspx

我明白为什么会发生这种情况,我想知道是否有一些解决方法可以告诉我的应用程序忽略虚拟目录并假设它位于网站的根目录中,在这种情况下是域的根目录?也许覆盖 ResolveClientUrl 并添加一个标志?

【问题讨论】:

  • 在 IIS、AFAIK 中,您只能将域绑定应用到网站,而不是虚拟目录。您是如何将 v. 目录关联到不同域的?
  • 另外,你应该真正改变你的标签以包含你正在运行的任何版本的 iis。

标签: c# asp.net iis virtual-directory


【解决方案1】:

您可以使用以下代码:

string.Format(Request.IsSecureConnection ? "https://{0}{1}" : "http://{0}{1}", Request.Url.Host, Page.ResolveUrl("~/ default.aspx"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-28
    • 2012-01-21
    • 2011-05-24
    • 2011-01-08
    • 2010-09-28
    • 2014-10-30
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多