Как использовать DirectoryEntry («IIS: // Localhost / W3SVC») для изменения IP-адреса с несколькими записями заголовка узла - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь программно изменить IP-адрес сайта, работающего на Server 2003. Когда я запускаю следующий код, сама привязка сайта изменяется, но есть другие значения заголовка узла, которые необходимо изменить. Как я могу изменить их?

protected static void ChangeServerIP(string old_ip, string new_ip)
    {
        int siteChangedCount = 0;
        DirectoryEntry entry = new DirectoryEntry("IIS://LocalHost/W3SVC");

        if (entry != null)
        {
            foreach (DirectoryEntry site in entry.Children)
            {
                if (site.SchemaClassName == "IIsWebServer")
                {
                    Console.WriteLine("Server Binding: " + site.Properties["ServerBindings"][0].ToString());

                    if (site.Properties["ServerBindings"][0].ToString().Contains(old_ip))
                    {
                        string ServerComment = site.Properties["ServerComment"].Value.ToString();

                        Console.WriteLine("Changing " + ServerComment + "'s IP address from " + old_ip + " to " + new_ip);

                        site.Properties["ServerBindings"].Value = site.Properties["ServerBindings"][0].ToString().Replace(old_ip, new_ip);

                        site.CommitChanges();
                        siteChangedCount++;
                        Console.WriteLine("New IP address bound to site: " + ServerComment + " IP: " + site.Properties["ServerBindings"].Value.ToString());
                    }
                }
            }
        }


        }

1 Ответ

1 голос
/ 13 января 2011

Вы пытались присвоить значение первому элементу в PropertyValueCollection?

site.Properties["ServerBindings"][0].Value = site.Properties["ServerBindings"][0].ToString().Replace(old_ip, new_ip);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...