Using AppCmd.exe to Create Site in IIS (edit)
https://www.codeproject.com/Articles/99634/Use-C-to-manage-IIS
https://stackoverflow.com/questions/39201375/change-iis-preloadenable-to-true-globally
https://forums.iis.net/t/1196037.aspx?Using+Appcmd+to+set+preloadEnabled+true
cd %windir%\system32\inetsrv
%windir%\system32\inetsrv\appcmd.exe
AppCmd.exe /?
ADD SITE | SET SITE
AppCmd.exe ADD SITE /name:WebApp01 /physicalPath:"C:\Inetpub\wwwroot\WebApp01" /bindings:https/*:44301:WebApp01
AppCmd.exe SET SITE /site.name:WebApp01 /[path='/'].applicationPool:DefaultAppPool
AppCmd.exe ADD SITE /name:WebApp02 /physicalPath:"C:\Inetpub\wwwroot\WebApp02" /bindings:https/*:44302:
AppCmd.exe SET SITE /site.name:WebApp02 /[path='/'].applicationPool:DefaultAppPool
AppCmd.exe ADD SITE /name:WebApp03 /physicalPath:"C:\Inetpub\wwwroot\WebApp03" /bindings:https/*:44303:
AppCmd.exe SET SITE /site.name:WebApp03 /[path='/'].applicationPool:DefaultAppPool
ADD & SET in a single line
mkdir C:\inetpub\wwwroot\WebApp04
AppCmd.exe add site /name:WebApp04 /physicalpath:"C:\inetpub\wwwroot\WebApp04" & AppCmd.exe set config -section:system.applicationHost/sites /+"[name='WebApp04'].bindings.[protocol='https',bindingInformation='192.168.1.61:44304:']" /commit:apphost
ADD & SITE Program
https://drive.google.com/file/d/10IJrgUf3dZ5mso66LwkOVRnnR-ohh1Zf/view?usp=sharing (manhng83@gmail.com)
using System; using System.Diagnostics; using System.Windows.Forms; namespace WindowsFormsApp3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnCreateSite_Click(object sender, EventArgs e) { string strSite = txtSite.Text.Trim(); string strPhysicalPath = txtPhysicalPath.Text.Trim(); string strIpAddress = txtIpAddress.Text.Trim(); string strPort = txtPort.Text.Trim(); string strHost = txtHost.Text.Trim(); if (!System.IO.Directory.Exists(strPhysicalPath)) { System.IO.Directory.CreateDirectory(strPhysicalPath); } string strAppCmdLocation = Environment.ExpandEnvironmentVariables("%windir%\\system32\\inetsrv\\appcmd.exe"); if (System.IO.File.Exists(strAppCmdLocation)) { string strCmdParams = strAppCmdLocation + string.Format(" add site /name:{0} /physicalpath:\"{1}\" & {2} set config -section:system.applicationHost/sites /+\"[name = '{0}'].bindings.[protocol = 'https', bindingInformation = '{3}:{4}:{5}']\" /commit:apphost", strSite, strPhysicalPath, strAppCmdLocation, strIpAddress, strPort, strHost); System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + strCmdParams); procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; procStartInfo.CreateNoWindow = true; procStartInfo.WindowStyle = ProcessWindowStyle.Hidden; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo = procStartInfo; proc.Start(); string result = proc.StandardOutput.ReadToEnd(); Console.WriteLine(result); MessageBox.Show(result); Debug.WriteLine(result); } } private void Form1_Load(object sender, EventArgs e) { txtSite.Text = "WebApp9"; txtPhysicalPath.Text = @"C:\inetpub\wwwroot\WebApp9"; txtIpAddress.Text = "192.168.1.61"; txtPort.Text = "443"; txtHost.Text = ""; } } }
LIST SITE to the XML file
AppCmd.exe list site "MySite" /config /xml > "C:\Users\Administrator\Desktop\MySite.xml"