Код для создания сайта IIS - PullRequest
3 голосов
/ 20 апреля 2009

Мне нужно программно создать сайт IIS. Кто-нибудь может показать мне код для этого?

Ответы [ 2 ]

4 голосов
/ 03 марта 2012

Пожалуйста, не используйте WMI (DirectoryEntry), если это вообще возможно при нацеливании на IIS 7 или выше. В Microsoft.Web.Administration.dll (windows\system32\inetsrv) есть API под названием ServerManager, который делает это действительно простым:

ServerManager serverManager = new ServerManager();
serverManager.Sites.Add("Mysite", "c:\temp\", 8080);
2 голосов
/ 20 апреля 2009

Это будет работать для IIS 6.0 и более поздних версий, оно написано на VB.Net (что достаточно мало, чтобы при необходимости легко конвертировать в C #). Я также не писал этого, я нашел его здесь (хотя я и скомпилировал его, чтобы убедиться, что он будет собираться): http://www.gafvert.info/notes/VBNET-Create-Website-IIS6.htm

VB версия

Imports System.DirectoryServices
Imports System

Public Class IISAdmin
    Public Shared Function CreateWebsite(webserver As String, serverComment As String, serverBindings As String, homeDirectory As String) As Integer
        Dim w3svc As DirectoryEntry
        w3svc = New DirectoryEntry("IIS://localhost/w3svc")

        'Create a website object array
        Dim newsite() As Object
        newsite = New Object(){serverComment, new Object(){serverBindings}, homeDirectory}

        'invoke IIsWebService.CreateNewSite
        Dim websiteId As Object
        websiteId = w3svc.Invoke("CreateNewSite", newsite)

        Return websiteId

    End Function

    Public Shared Sub Main(args As String())
        Dim a As Integer
        a = CreateWebsite("localhost", "Testing.com", ":80:Testing.com", "C:\\inetpub\\wwwroot")
        Console.WriteLine("Created website with ID: " & a)
    End Sub

End Class

C # версия

public static int CreateWebsite(string webserver, string serverComment, string serverBindings, string homeDirectory)
{
   DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc");

   //Create a website object array
   object[] newsite = new object[]{serverComment, new object[]{serverBindings}, homeDirectory};

   //invoke IIsWebService.CreateNewSite
   object websiteId = (object)w3svc.Invoke("CreateNewSite", newsite);

   return (int)websiteId;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...