/// <summary>
/// Create the web site.
/// </summary>
/// <param name="appPoolName">Name of the application pool.</param>
/// <param name="name">The name.</param>
/// <param name="protocol">The protocol.</param>
/// <param name="ip">The ip.</param>
/// <param name="domains">The domains.</param>
/// <param name="port">The port.</param>
/// <param name="physicalPath">The physical path.</param>
public static void CreateWebSite(string appPoolName, string name, string protocol, string ip, string[] domains, string port, string physicalPath)
{
var iisManager = new ServerManager();
var site = GetSite(iisManager, name, false);
if (site != null)
{
site.Stop();
}
if (site == null)
{
var mainDomain = domains[0];
string bindingInfo = string.Format(@"{0}:{1}:{2}", ip, port, mainDomain);
iisManager.Sites.Add(name, "http", bindingInfo, physicalPath);
iisManager.CommitChanges();
site = iisManager.Sites.First(s => s.Name == name);
site.ServerAutoStart = true;
site.Applications.First().ApplicationPoolName = appPoolName;
}
//add bindings
//
AddBindings(site, domains.Select(d => string.Format(@"{0}:{1}:{2}", ip, port, d)).ToArray(), protocol);
//change application pool
//
AddApplicationPools(appPoolName, site);
//save changes
//
iisManager.CommitChanges();
Thread.Sleep(1000);
site.Start();
}