Есть ли лучший способ проверить виртуальный каталог и, если нет, создать его? - PullRequest
0 голосов
/ 13 августа 2010

У меня есть некоторый код VBScript, который я использую, чтобы установить пути к виртуальным каталогам, когда разработчик переключает свою среду для работы над другим проектом.В настоящее время мы пытаемся установить путь, и если есть ошибка, мы создаем его.Просто пахнет смешно.Есть ли способ проверить, существует ли виртуальный каталог?А если нет, то создайте его?

set objIIS = GetObject("IIS://" & strComputer & "/W3SVC/1/ROOT/SomeWeb")
objIIS.Path = strNewPath & "\SomeWeb"
objIIS.SetInfo

If Err.Number =  NOT_FOUND Then
    sVirtPath = strNewPath & "\SomeWeb"
CreateVirtualDirectory "SomeWeb", sVirtPath, true
Err.Clear
End If

Это работает просто отлично, но что-то подсказывает мне, должен быть лучший способ.У кого-нибудь есть предложения?Как проверить наличие виртуального каталога?Любые отзывы приветствуются.

Спасибо за любые указатели.
Приветствия,
~ СК в Сан-Диего

1 Ответ

0 голосов
/ 13 августа 2010

Ваш подход кажется нормальным.Вот немного другой подход, который я использовал несколько лет назад при работе с IIS 5.0.Я не уверен, будет ли он работать в более поздних версиях IIS, но вы можете найти его полезным.

Function IsExistingWebApp(strAppPath)
    Dim oWeb

    On Error Resume Next

    ' Assume it does not exist
    IsExistingWebApp = False

    Set oWeb = GetObject( strAppPath )
    If ( Err <> 0 ) Then
        ' If an error occurs then we know the application does not exist
        'LogMessage strAppPath & " does not exist as an application."

        Err = 0
        Exit Function
    Else
        If oWeb.Class = "IIsWebVirtualDir" Then
        'LogMessage "Found existing web application " & oWeb.AdsPath
        ' If it does exist and it is configured as a 
        ' virtual directory then rerturn true
        IsExistingWebApp = True
        End If      
    End If  
End Function
...