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

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

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

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

Ответы [ 2 ]

3 голосов
/ 11 мая 2010

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

Dim obj
Dim inst

inst = Request.ServerVariables("INSTANCE_ID")

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

Response.Write obj.ServerComment
0 голосов
/ 11 мая 2010

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

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

...