开发者

Change the Default Application Pool in IIS7 using .net?

开发者 https://www.devze.com 2022-12-24 15:28 出处:网络
I\'m using the following function to create an IIS7 Application and/or Virtual Directory. How would I also set the Application to use a different Application Pool?

I'm using the following function to create an 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 the开发者_如何转开发n 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


Just before you do VDir.CommitChanges() insert this line:

VDir.Properties("AppPoolId").Item(0) = "<your_app_pool_name>"
0

精彩评论

暂无评论...
验证码 换一张
取 消