我有一个经典的 asp 应用程序,它检索当前应用程序名称并设置一个包含该名称的应用程序变量。这个名字很重要(我不会解释为什么)并且本质上是 IIS 中的友好名称。
问题是,用于获取此名称的实现存在缺陷,它 a) 假定主目录包含字符串 wwwroot,并且 b) 假定文件夹名称与应用程序名称相同。我不能再保证这些条件。
我原以为应用程序名称在运行时是已知的,但我似乎无法在会话或应用程序变量中找到它(在 global.asa 中的应用程序启动入口点)。有任何想法吗?
我有一个经典的 asp 应用程序,它检索当前应用程序名称并设置一个包含该名称的应用程序变量。这个名字很重要(我不会解释为什么)并且本质上是 IIS 中的友好名称。
问题是,用于获取此名称的实现存在缺陷,它 a) 假定主目录包含字符串 wwwroot,并且 b) 假定文件夹名称与应用程序名称相同。我不能再保证这些条件。
我原以为应用程序名称在运行时是已知的,但我似乎无法在会话或应用程序变量中找到它(在 global.asa 中的应用程序启动入口点)。有任何想法吗?
您可能想尝试这样的事情:
Dim obj
Dim inst
inst = Request.ServerVariables("INSTANCE_ID")
Set obj = GetObject("IIS://localhost/W3SVC/" + inst)
Response.Write obj.ServerComment
如果通过友好名称您指的是 IIS 描述,您可能会从 IIS 的 AdminScripts 文件夹(通常为 c:\Inetpub\AdminScripts)中的 findweb.vbs 文件中获得一些信息,该文件夹中的一些其他脚本可能能够也让你走得更远。
试试这个。它展示了如何通过 ADIS 枚举 IIS 网站