Как получить текущее имя приложения (в терминах 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