【问题标题】:How do I get the current Application Name (in terms of IIS) in a classic asp Web application如何在经典的 asp Web 应用程序中获取当前的应用程序名称(根据 IIS)
【发布时间】:2011-02-17 18:03:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp-classic application-name


    【解决方案1】:

    如果您指的是 IIS 描述的友好名称,您可能会从 IIS 的 AdminScripts 文件夹(通常为 c:\Inetpub\AdminScripts)中的 findweb.vbs 文件中获得一些信息,该文件夹中的一些其他脚本或许也能让你走得更远。

    也可以试试this。它展示了如何通过 ADIS 枚举 IIS 网站

    【讨论】:

      【解决方案2】:

      你可能想尝试这样的事情:

      Dim obj
      Dim inst
      
      inst = Request.ServerVariables("INSTANCE_ID")
      
      Set obj = GetObject("IIS://localhost/W3SVC/" + inst)
      
      Response.Write obj.ServerComment
      

      【讨论】:

      • 这可能需要对与您的应用一起使用的 IIS 用户帐户具有特殊权限。
      • 谢谢,这种工作,但当然只在会话启动而不是应用程序启动。问题出在 IIS6 上,我得到“默认 Web”站点,因为这实际上是包含虚拟目录的站点名称。我现在注意到这个应用程序的某些区域我们会遇到问题,因为在某些区域代码使用应用程序名称来获取文件夹路径!所以该应用程序存在根本缺陷
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 2013-04-09
      • 2010-11-24
      • 1970-01-01
      • 2013-11-30
      • 2015-09-03
      相关资源
      最近更新 更多