【问题标题】:How to Bind Application base URL according to the Request?如何根据请求绑定应用程序基础 URL?
【发布时间】:2014-11-17 10:28:45
【问题描述】:

我们的应用程序遇到了严重问题,我们正在像这样绑定应用程序的基本 url

 public static readonly string ApplicationBaseUrl = "http://" + HttpContext.Current.Request.Url.Authority + GetApplicationPath() + "/";

  public static string GetApplicationPath()
    {
        string applicationPath = "/";

        if (HttpContext.Current != null)
        {
            applicationPath = HttpContext.Current.Request.ApplicationPath;
        }

        if (applicationPath == "/")
        {
            return string.Empty;
        }
        else
        {
            return applicationPath;
        }
    }

我们正在使用如下所示的 Application BaseURL 绑定徽标或其他图像文件

例如:ApplicationBaseUrl +"/Images/"+"Logo.png"

以前我们只在 Intranet 中使用我们的应用程序(使用本地 IP),所以我们要面对所有图像正确绑定的任何问题

现在我们使用公共 IP 通过互联网访问应用程序,这里我们面临问题

当我们使用公共 IP 访问应用程序时出现的问题 由于此 loco 未绑定因此它显示空白空间,因此 locos 仍然与本地 IP 绑定(即http://192.168.1.93/WEBUI/Images/Logo.png),一旦我们重置 IIS 然后使用公共 Ip 请求应用程序它工作正常,绑定被改变(即http://PublicIP/WEBUI/Images/Logo.png

所以我们只能使用本地 IP 或公共应用程序,我们不能同时使用这两个环境

我们无法预测,请任何人帮助我们解决这个问题

谢谢

【问题讨论】:

  • 你能不能使用“~” - Google App 相对路径,ASP.NET。
  • 我需要使用相对路径吗?

标签: c# asp.net http url httpcontext


【解决方案1】:

先生,你试过吗?

<appSettings>
            <add key="livesite" value="http://192.168.1.93/WEBUI/"/>
 </appSettings>


 Image1.ImageUrl = System.ConfigurationManager.AppSettings["livesite"] + "Images/Logo.png";

【讨论】:

  • 是的,先生,以前我们使用这种方式来获取 Base URL 本身我们遇到了同样的问题,只是我们改变了我在问题中所说的方法
  • 但是其他的图片没有任何映射,图片的url简单的放在Skin文件这样 即使我们对这些图像也有同样的问题
【解决方案2】:

如果我的问题正确,我认为不需要所有这些行,并且每当您想将某些内容绑定到应用程序根路径时,您需要使用 Server.MapPath() 方法为其提供 telda 符号 (~) 它应该为您处理所有这些情况。

引用自官方文档:

Server.MapPath():指定映射到物理目录的相对或虚拟路径。 如果 Path 以正斜杠 (/) 或反斜杠 () 开头,则 MapPath 方法返回一个路径,就好像 Path 是一个完整的虚拟路径。如果 路径不以斜线开头,MapPath 方法返回路径 相对于正在处理的 .asp 文件的目录。

一个例子: 处理徽标路径

代替这一行:ApplicationBaseUrl +"/Images/"+"Logo.png"

您将使用以下内容:Server.MapPath("~/Images/Logo.png");

如果这解决了您的问题,请告诉我,谢谢。

【讨论】:

  • 我试过了,但仍然遇到同样的问题
猜你喜欢
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
  • 2014-01-02
  • 1970-01-01
相关资源
最近更新 更多