Это будет работать для 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;
}