Как получить текущее имя приложения (в терминах IIS) в классическом веб-приложении asp

У меня есть классическое приложение asp, которое получает текущее имя приложения и устанавливает переменную Application, содержащую это имя. Это имя важно (я не буду вдаваться в причину) и по сути является дружественным именем в IIS.

Проблема в том, что реализация, используемая для получения этого имени, имеет недостатки: а) предполагает, что домашний каталог содержит строку wwwroot, и б) предполагает, что имя папки совпадает с именем приложения. Я больше не могу гарантировать эти условия.

Я бы подумал, что имя приложения известно во время выполнения, но я не могу найти его ни в переменных Session, ни в Application (в точке запуска приложения в global.asa). Есть идеи?

2 ответа

Вы можете попробовать что-то вроде этого:

Dim obj
Dim inst

inst = Request.ServerVariables("INSTANCE_ID")

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

Response.Write obj.ServerComment

Если по понятному имени вы ссылаетесь на описание IIS, вы можете получить некоторое преимущество из файла findweb.vbs в папке AdminScripts IIS (обычно c:\Inetpub\AdminScripts). Некоторые другие сценарии в этой папке могут чтобы получить вас дальше.

Попробуйте это также. Он показывает, как перечислять сайты IIS через ADIS

Другие вопросы по тегам