Change the Default Application Pool in IIS7 using .net?

Posted by EdenMachine on Stack Overflow See other posts from Stack Overflow or by EdenMachine
Published on 2010-03-23T20:59:04Z Indexed on 2010/03/23 21:03 UTC
Read the original article Hit count: 634

Filed under:
|

I'm using the following function to create a IIS7 Application and/or Virtual Directory. How would I also set the Application to use a different Application Pool?

Private Sub CreateVirtualDir(ByVal WebSite As String, ByVal AppName As String, ByVal Path As String, Optional ByVal IsApplication As Boolean = True, Optional ByVal RunScripts As Boolean = True, Optional ByVal IsWrite As Boolean = True)

Dim IISSchema As New System.DirectoryServices.DirectoryEntry("IIS://" & WebSite & "/Schema/AppIsolated")
Dim CanCreate As Boolean = Not IISSchema.Properties("Syntax").Value.ToString.ToUpper() = "BOOLEAN"
IISSchema.Dispose()

If CanCreate Then
    Dim PathCreated As Boolean

    Try
        Dim IISAdmin As New System.DirectoryServices.DirectoryEntry("IIS://" & WebSite & "/W3SVC/1/Root")

        'make sure folder exists
        If Not System.IO.Directory.Exists(Path) Then
            System.IO.Directory.CreateDirectory(Path)
            PathCreated = True
        End If

        'If the virtual directory already exists then delete it
        For Each VD As System.DirectoryServices.DirectoryEntry In IISAdmin.Children
            If VD.Name = AppName Then
                IISAdmin.Invoke("Delete", New String() {VD.SchemaClassName, AppName})
                IISAdmin.CommitChanges()
                Exit For
            End If
        Next VD

        'Create and setup new virtual directory
        Dim VDir As System.DirectoryServices.DirectoryEntry = IISAdmin.Children.Add(AppName, "IIsWebVirtualDir")
        VDir.Properties("Path").Item(0) = Path
        If IsApplication Then
            VDir.Properties("AppFriendlyName").Item(0) = AppName
        End If
        VDir.Properties("EnableDirBrowsing").Item(0) = False
        VDir.Properties("AccessRead").Item(0) = True
        VDir.Properties("AccessExecute").Item(0) = False
        VDir.Properties("AccessWrite").Item(0) = IsWrite
        VDir.Properties("AccessScript").Item(0) = RunScripts
        VDir.Properties("AuthNTLM").Item(0) = True
        VDir.Properties("EnableDefaultDoc").Item(0) = True
        VDir.Properties("DefaultDoc").Item(0) = "default.htm,default.aspx,default.asp"
        VDir.Properties("AspEnableParentPaths").Item(0) = True
        'VDir.Properties("AppCreate").Item(0) = False
        VDir.CommitChanges()

        'the following are acceptable params
        'INPROC = 0
        'OUTPROC = 1
        'POOLED = 2
        If IsApplication Then
            VDir.Invoke("AppCreate", 1)
        Else
            VDir.Invoke("AppCreate", False)
        End If
    Catch Ex As Exception
        If PathCreated Then
            System.IO.Directory.Delete(Path)
        End If
        'MsgBox(Ex.Message)
    End Try
End If

End Sub

© Stack Overflow or respective owner

Related posts about iis7

Related posts about .NET