Программно создать веб-сайт в IIS с помощью C # и установить номер порта

Мы создали веб-сайт. Мы сделали это, используя информацию в этой ссылке:

https://msdn.microsoft.com/en-us/library/ms525598.aspx

Тем не менее, мы хотели бы использовать номер порта, другой порт 80. Как мы это сделаем?

Мы используем IIS 6

Если вы используете IIS 7, существует новый управляемый API под названием Microsoft.Web.Administration

Пример из вышеприведенного сообщения в блоге:

ServerManager iisManager = new ServerManager(); iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:\\MySite"); iisManager.CommitChanges(); 

Если вы используете IIS 6 и хотите это сделать, это сложнее, к сожалению.

Вам нужно будет создать веб-службу на каждом сервере, веб-службу, которая обрабатывает создание веб-сайта, потому что прямой имидж пользователя по сети не будет работать должным образом (если я это правильно помню).

Вам нужно будет использовать Interop Services и сделать что-то похожее (этот пример использует два объекта, сервер и сайт, которые являются экземплярами пользовательских classов, которые хранят конфигурацию сервера и сайта):

 string metabasePath = "IIS://" + server.ComputerName + "/W3SVC"; DirectoryEntry w3svc = new DirectoryEntry(metabasePath, server.Username, server.Password); string serverBindings = ":80:" + site.HostName; string homeDirectory = server.WWWRootPath + "\\" + site.FolderName; object[] newSite = new object[] { site.Name, new object[] { serverBindings }, homeDirectory }; object websiteId = (object)w3svc.Invoke("CreateNewSite", newSite); // Returns the Website ID from the Metabase int id = (int)websiteId; 

Подробнее здесь

Это решение.
Статья в блоге: Как добавить новый сайт в IIS 7

На кнопке нажмите:

 try { ServerManager serverMgr = new ServerManager(); string strWebsitename = txtwebsitename.Text; // abc string strApplicationPool = "DefaultAppPool"; // set your deafultpool :4.0 in IIS string strhostname = txthostname.Text; //abc.com string stripaddress = txtipaddress.Text;// ip address string bindinginfo = stripaddress + ":80:" + strhostname; //check if website name already exists in IIS Boolean bWebsite = IsWebsiteExists(strWebsitename); if (!bWebsite) { Site mySite = serverMgr.Sites.Add(strWebsitename.ToString(), "http", bindinginfo, "C:\\inetpub\\wwwroot\\yourWebsite"); mySite.ApplicationDefaults.ApplicationPoolName = strApplicationPool; mySite.TraceFailedRequestsLogging.Enabled = true; mySite.TraceFailedRequestsLogging.Directory = "C:\\inetpub\\customfolder\\site"; serverMgr.CommitChanges(); lblmsg.Text = "New website " + strWebsitename + " added sucessfully"; } else { lblmsg.Text = "Name should be unique, " + strWebsitename + " is already exists. "; } } catch (Exception ae) { Response.Redirect(ae.Message); } 

Зацикливание над сайтами, существует ли имя

  public bool IsWebsiteExists(string strWebsitename) { Boolean flagset = false; SiteCollection sitecollection = serverMgr.Sites; foreach (Site site in sitecollection) { if (site.Name == strWebsitename.ToString()) { flagset = true; break; } else { flagset = false; } } return flagset; } 

Попробуйте следующий код, чтобы узнать, что UnUsed PortNo

  DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC"); // Find unused ID PortNo for new web site bool found_valid_port_no = false; int random_port_no = 1; do { bool regenerate_port_no = false; System.Random random_generator = new Random(); random_port_no = random_generator.Next(9000,15000); foreach (DirectoryEntry e in root.Children) { if (e.SchemaClassName == "IIsWebServer") { int site_id = Convert.ToInt32(e.Name); //For each detected ID find the port Number DirectoryEntry vRoot = new DirectoryEntry("IIS://localhost/W3SVC/" + site_id); PropertyValueCollection pvcServerBindings = vRoot.Properties["serverbindings"]; String bindings = pvcServerBindings.Value.ToString().Replace(":", ""); int port_no = Convert.ToInt32(bindings); if (port_no == random_port_no) { regenerate_port_no = true; break; } } } found_valid_port_no = !regenerate_port_no; } while (!found_valid_port_no); int newportId = random_port_no; 
  1. В свойствах сайта выберите вкладку «Веб-сайт» и укажите TCP-порт.
  2. В студии для отладки назначения укажите http: // localhost: /

Interesting Posts

Можно ли использовать ПК в качестве внешнего накопителя через USB?

Android: получите информацию о программном обеспечении

Как проверить «Разрешить полный доступ» в iOS 8?

Как использовать свойство CancellationToken?

Отсутствует заголовок C ++ после обновления команд командной строки OSX 6.3

Что я могу сделать для «ping flooding»?

предупреждение: функция становится опасной

Какой лучший ответ для: «мой Интернет не работает»?

Как я могу зашифровать свой «пользовательский» диск?

Что является недостатком масштабирования DPI в стиле Windows XP в Windows 7

Можете ли вы подключить батарею, когда ноутбук включен только в сети?

Airflow 1.9.0 – это очередность, но не запуск задач

Как обмениваться фотографиями между двумя MacBook Pro по беспроводной сети?

Произошел INTERNAL_ERROR, когда requestEmail от GoogleSignInOptions Android

Есть ли горячая клавиша Windows или ярлык для переключения на определенный экран?

Давайте будем гением компьютера.