我们的应用程序中存在严重问题,我们正在绑定像这样的应用程序基础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绑定徽标或其他图像文件,如下所示
Ex:ApplicationBaseUrl +“/ Images /”+“Logo.png”
之前我们只在Intranet中使用过我们的应用程序(使用本地IP)所以我们面对任何问题所有图像都正确绑定
现在我们正在使用Public Ip通过互联网访问应用程序,我们正面临着问题
我们使用公共IP访问应用程序时的问题仍然是本地服务器绑定本地IP(即http://192.168.1.93/WEBUI/Images/Logo.png
),因为此loco没有绑定所以它显示空白,一旦我们重置IIS然后请求使用应用程序公共IP正常工作,绑定被绑定(即http://PublicIP/WEBUI/Images/Logo.png
)
所以我们只能使用我们的应用程序本地IP或公共,我们不能同时使用环境
我们无法预测,Plz任何人都可以帮助我们解决这个问题
由于
答案 0 :(得分:0)
如果我正确地提出了您的问题,我认为没有必要使用所有这些行,并且每当您想要将某些内容绑定到应用程序根路径时,您将需要使用Server.MapPath()
方法向其提供telda符号< strong>(〜),应该为您处理所有这些情况。
引自官方文件:
Server.MapPath():指定映射到物理目录的相对路径或虚拟路径。 如果Path以正向(/)或反斜杠()开头,则 MapPath方法返回路径,就好像Path是一个完整的虚拟路径。如果 路径不以斜杠开头,MapPath方法返回路径 相对于正在处理的.asp文件的目录。
一个例子: 处理徽标路径
而不是这一行:ApplicationBaseUrl +"/Images/"+"Logo.png"
您将使用以下内容:Server.MapPath("~/Images/Logo.png");
请告诉我这是否解决了您的问题,谢谢。
答案 1 :(得分:0)
<appSettings>
<add key="livesite" value="http://192.168.1.93/WEBUI/"/>
</appSettings>
Image1.ImageUrl = System.ConfigurationManager.AppSettings["livesite"] + "Images/Logo.png";