2011-01-25 156 views
0

我有兩個名爲MainWeb和Reports的獨立Web應用程序。我想這樣部署它們:將有一個虛擬應用程序用於MainWeb,例如指向c:\ inetpub \ www \ mainwebASP.NET內部目錄虛擬路徑根目錄

我想將Reports應用程序部署在主Web的子目錄中,以便它位於c:\ inetpub \ www \ mainweb \ reports

因此,我可以結合邏輯耦合的兩個,但我希望他們在單獨的項目中輕鬆操作。

是,在我的報告的項目,我使用的結構,如~/Style/Whatever.css獨立運行報告應用程序使用,但作爲主要的網絡子目錄時,當其正常工作的問題,它解析爲HTTP://localhost/Style/Whatever.css雖然我會需要它來解決到http:// localhost/報告 /Style/Whatever.css

所以問題是,是否有可能處理這種情況,也許某種方式來修改嵌套web.config中的~的行爲?

回答

1

不是真正的webby傢伙,但如何在報告中的實際文件夾的快捷方式?

+0

事實上,這是我不得不這樣做的最後。我必須在Reports項目中創建另一個Reports目錄,並將所有內容放在那裏。然後在主網絡中,我創建了該報告目錄的鏈接並刪除了Reports項目的虛擬應用程序。然後,我將Reports項目中的所有內容都指向了「〜/ Reports/Something.xxx」,而不是「〜/ Someting.xxx」。因此,我可以在主網站和獨立網站中使用報告。感謝您的建議。 – 2011-01-25 16:07:07

0

hm,我有類似的情況,我不確定你的問題是什麼,VirtualPathUtility和服務器控制解決〜當前的Web應用程序根目錄。

但是,也許你可以把虛擬路徑在本地主機的報告應用程序目錄的屬性/網絡部分,picture here

+0

嗨,感謝您的建議,但這不適用於我,因爲我使用的是IIS,並且在部署時也不起作用。 – 2011-01-25 16:08:21

0

有我以前就解決了這個問題,3點不同的方式:

  1. 移動你從「Report」應用直到「MainWeb」應用的樣式引用。這樣你的「〜」網址引用將仍然有效。如果您不想移動實際文件,則可以使用其他虛擬目錄將根資源文件夾鏈接到根目錄下。
  2. 創建一個名爲「ApplicationPath」的靜態助手屬性,該屬性將根據它所在的位置返回「〜/」或「〜/ Reports」。然後,您可以使用此屬性在構建HTML時爲您的資源返回正確的URL。
  3. 使用嵌入式資源。利用嵌入式資源,URL會自動生成,因此您不必擔心路徑。
+0

嗨。 1.會打破我爲什麼要分離的原因。 2.有些地方我不會知道如何使用它,例如引用控件:`<%@ Register TagName =「Ctl」TagPrefix =「control」Src =「〜/ Ctl.ascx」%>`。 3.雖然我在談論css,但我沒有提到這不是唯一的問題,但是masterpage,控件引用等等,對不起。儘管如此,感謝您的建議。 – 2011-01-25 16:02:38