Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic 如何在经典asp Web应用程序中获取当前应用程序名(以IIS为单位)_Asp Classic_Application Name - Fatal编程技术网

Asp classic 如何在经典asp Web应用程序中获取当前应用程序名(以IIS为单位)

Asp classic 如何在经典asp Web应用程序中获取当前应用程序名(以IIS为单位),asp-classic,application-name,Asp Classic,Application Name,我有一个经典的asp应用程序,它检索当前的应用程序名称并设置一个包含该名称的应用程序变量。这个名字很重要(我不想解释为什么),它本质上是IIS中的友好名称 问题是,用于获取此名称的实现存在缺陷,它a)假定主目录包含字符串wwwroot,b)假定文件夹名称与应用程序名称相同。我不能再保证这些条件 我本以为应用程序名在运行时是已知的,但我似乎在会话或应用程序变量(在global.asa中的应用程序启动入口点)中都找不到它。有什么想法吗?如果您以友好的名称引用IIS描述,您可能会从IIS的AdminS

我有一个经典的asp应用程序,它检索当前的应用程序名称并设置一个包含该名称的应用程序变量。这个名字很重要(我不想解释为什么),它本质上是IIS中的友好名称

问题是,用于获取此名称的实现存在缺陷,它a)假定主目录包含字符串wwwroot,b)假定文件夹名称与应用程序名称相同。我不能再保证这些条件


我本以为应用程序名在运行时是已知的,但我似乎在会话或应用程序变量(在global.asa中的应用程序启动入口点)中都找不到它。有什么想法吗?

如果您以友好的名称引用IIS描述,您可能会从IIS的AdminScripts文件夹(通常为c:\Inetpub\AdminScripts)中的findweb.vbs文件中获得一些好处。该文件夹中的一些其他脚本可能也可以帮助您进一步了解


也试试看。它显示了如何通过ADIS枚举IIS网站

您可以尝试以下方法:

Dim obj
Dim inst

inst = Request.ServerVariables("INSTANCE_ID")

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

Response.Write obj.ServerComment

这可能需要对应用程序使用的IIS用户帐户具有特殊权限。谢谢,这类操作可以正常工作,但当然只能在会话启动时使用,而不能在应用程序启动时使用。问题是在IIS6上,我得到了“默认Web”站点,因为这实际上是保存虚拟目录的站点名称。我现在注意到,在这个应用程序中,我们可能会遇到一些问题,因为在某些区域,代码使用应用程序名称来获取文件夹路径!因此,该应用程序存在根本性缺陷