2010-05-10 80 views
1

我有一個經典的asp應用程序,它檢索當前的應用程序名稱並設置一個包含該名稱的Application變量。這個名字很重要(我不會理解爲什麼),並且實質上是IIS中的友好名稱。如何在經典asp Web應用程序中獲得當前應用程序名稱(以IIS的形式)

問題是,用於獲取此名稱的實現存在缺陷,它a)假定主目錄包含字符串wwwroot,並且b)假定文件夾名稱與應用程序名稱相同。我不能再保證這些條件。

我原以爲應用程序名稱在運行時是已知的,但我似乎無法在會話或應用程序變量(應用程序啓動入口點global.asa中)中找到它。有任何想法嗎?

回答

0

如果通過友好名稱指的是IIS描述,則可能會在IIS的AdminScripts文件夾(通常爲c:\ Inetpub \ AdminScripts)中的findweb.vbs文件中獲得一些里程碑。其中一些其他腳本文件夾也許能夠讓你更進一步。

嘗試this也。它展示瞭如何通過ADIS

3

枚舉IIS網站時,可能想嘗試這樣的:

Dim obj 
Dim inst 

inst = Request.ServerVariables("INSTANCE_ID") 

Set obj = GetObject("IIS://localhost/W3SVC/" + inst) 

Response.Write obj.ServerComment 
+0

這可能需要特殊的權限與您的應用使用IIS用戶帳戶。 – 2010-05-11 10:11:46

+0

謝謝,這種工作,但當然只在會話開始,而不是應用程序啓動。問題出在IIS6上我得到了「Default Web」站點,因爲這實際上是保存虛擬目錄的站點名稱。 我現在已經注意到這個應用程序的哪些地方會遇到問題,因爲在某些地區代碼使用應用程序名稱來獲取文件夾路徑!所以該應用程序有根本性的缺陷 – 2010-05-11 12:21:41

相關問題