2010-05-10 55 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

相关问题