2014-09-23 65 views
1

我們有我們的應用程序一個嚴重的問題,我們結合應用基礎URL這樣如何根據請求綁定應用程序的基本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; 
     } 
    } 

我們正在結合使用應用程序的BaseURL的標誌或其他圖像文件,如下面

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

以前我們只在Intranet中使用我們的應用程序(使用本地IP),所以我們不力面臨的任何問題,所有圖像都正確地結合

現在我們正在使用公共IP通過互聯網來訪問應用程序,在這裏,我們所面臨的問題

的問題,當我們訪問使用公共IP應用程序仍然是火車頭與本地IP(即http://192.168.1.93/WEBUI/Images/Logo.png)由於結合這個loco沒有綁定,所以它顯示空白,一旦我們重置IIS,然後請求應用程序使用公共Ip其正常工作,綁定是變(http://PublicIP/WEBUI/Images/Logo.png

所以我們可以使用我們的應用程序只有本地IP或公共,我們不能同時使用兩種環境

我們無法預測,PLZ任何一個可以幫助我們解決這個問題

感謝

+0

您不能使用「〜」 - Google App相對路徑,ASP.NET。 – 2014-09-23 09:21:02

+1

我需要使用相對路徑? – user3839950 2014-09-23 09:23:48

回答

0

如果我收到了你的問題正確,我認爲沒有必要將所有這些行,只要你想綁定的東西到你的應用程序根路徑,您將需要使用Server.MapPath()方法爲其提供telda標記(〜),它應該爲您處理所有這些場景。

從官方文檔引用:

使用Server.Mappath():指定映射到物理目錄的相對或虛擬路徑。 如果Path以前向(/)或反向斜槓()開頭,則MapPath方法會返回路徑,就像Path是完整的虛擬路徑一樣。如果 路徑不以斜槓開始,則MapPath方法返回相對於正在處理的.asp文件的目錄的路徑 。

一個例子: 處理標識路徑

代替此行的:ApplicationBaseUrl +"/Images/"+"Logo.png"

您將使用以下命令:Server.MapPath("~/Images/Logo.png");

請讓我知道如果這能解決問題, 謝謝。

+0

我試過這個但仍然得到相同的問題 user3839950 2014-09-23 09:29:58

0

你試過這種方式先生?

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


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

是的,先前我們用這種方式獲取基本URL時間本身,我們得到了同樣的問題後,只有我們已經改變了方法,我已經說了在問題 – user3839950 2014-09-23 10:27:10

+0

但其他圖像沒有任何映射,圖像URL簡單地放置在這樣的皮膚文件即使我們對這些圖像也有同樣的問題 – user3839950 2014-09-23 10:31:11

相關問題