使用.net更改IIS7中的默认应用程序池?

时间:2010-03-23 20:59:05

标签: iis configuration iis-7

我正在使用以下函数来创建IIS7应用程序和/或虚拟目录。

我如何设置应用程序以使用其他应用程序池?

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

1 个答案:

答案 0 :(得分:1)

在您VDir.CommitChanges()之前插入此行:

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