2011-02-19 83 views
3

我已經被交上了alegacy(經典ASP),在我的時間,應用程序和我的生活之前一直遭到毆打,槍殺或以其他方式致殘的紅頭兒童我無法弄清楚它是如何在生產環境中工作的(即使源代碼管理中的文件不是最新的,我甚至還從生產中獲得了一份副本)。Server.MapPath不返回預期的路徑

我有一些代碼執行以下操作

tmpDefaultXSLFile="xsl/SomeValue" 
... 
objXsl.load(Server.MapPath(tmpDefaultXSLFile & ".xsl")) 

然而,似乎使用Server.Mappath不映射文件到預期的位置(即「\ asp_file_directory \ XSL \ SomeValue.xsl」和所需的修飾是到XSL文件。

有沒有什麼辦法,該系統能夠被愚弄,有地圖使用Server.Mappath別的地方?

+2

將`Server.MapPath(tmpDefaultXSLFile&「.xsl」)的值寫入網頁時會發生什麼?它給了什麼價值? xls文件夾是否真的是asp文件存儲位置的子文件夾?你是否有寫訪問權限(假設你想更新xsl文件?) – Edelcom 2011-02-19 04:35:14

+0

看起來我偶然發現了一些以前沒有被調用過的代碼。將這個文件粉碎到軟件器官 – 2011-02-28 17:26:57

回答

1

看起來像IIS虛擬目錄是導致此。檢查URL,並將其比作IIS內的目錄結構includi虛擬。

+1

是的,例如if/xsl`被映射(作爲虛擬目錄)到不同的物理目錄,那個不同的目錄將被用作根目錄。 – 2011-02-20 13:18:23

0

server.mappath(Path)指定映射到物理目錄的相對路徑或虛擬路徑。

如果Path以前向(/)或反向斜槓(\)開頭,則MapPath方法返回路徑,就像Path是完整的虛擬路徑一樣。

如果Path未以斜槓開始,則MapPath方法返回相對於正在處理的.asp文件的目錄的路徑。