SiteCollection.Remove(Site) Method

Definition

Removes the specified site from the site collection.

public:
 void Remove(Microsoft::Web::Administration::Site ^ element);
public void Remove (Microsoft.Web.Administration.Site element);
override this.Remove : Microsoft.Web.Administration.Site -> unit
Public Sub Remove (element As Site)

Parameters

element
Site

The Site object to remove from the SiteCollection object.

Exceptions

element is null.

Examples

The following example creates a site, removes a site, and updates the configuration system.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Web.Administration;
using Microsoft.Web.Management;

namespace AdministrationSnippets
{
    class MicrosoftWebAdministrationSite
    {
// Creates an site named HRWeb
public void CreateSite()
{
    CreateSiteByName("HRWeb");
}

// Creates a new site with the specified name
public void CreateSiteByName(string name)
{
    string path = @"C:\inetpub\" + name + "site";

    // Validate the site name
    char[] invalid = SiteCollection.InvalidSiteNameCharacters();
    if (name.IndexOfAny(invalid) > -1)
    {
        Console.WriteLine("Invalid site name: {0}", name);
    }

    // Create the content directory if it doesn't exist.
    if (!System.IO.Directory.Exists(path))
    {
        System.IO.Directory.CreateDirectory(path);
    }

    // Create a new site using the new directory and update the config
    ServerManager manager = new ServerManager();
    try
    {   // Add this site.
        Site hrSite = manager.Sites.Add(name, "http", "*:9090:", path);
        // The site will need to be started manually.
        hrSite.ServerAutoStart = false;
        manager.CommitChanges();
        Console.WriteLine("Site " + name + " added to ApplicationHost.config file.");
    }
    catch
    {
        // A site with this binding already exists. Do not attempt
        // to add a duplicate site.
    }
}
// Creates a site, then deletes it 
public void RemoveSite()
{
    // Create a site to delete first
    CreateSiteByName("HRWeb");

    // Delete the site just created
    RemoveSiteByName("HRWeb");
}
// Deletes a new site based on the name
public void RemoveSiteByName(string siteName)
{
    ServerManager manager = new ServerManager();
    Site siteToRemove = manager.Sites[siteName];
    manager.Sites.Remove(siteToRemove);
    manager.CommitChanges();
    Console.WriteLine("Site " + siteName + " removed from ApplicationHost.config file.");
}
    }
}

Remarks

The Site object is removed from the collection in memory during this call. However, to commit the site configuration to the configuration system, you will need to use the ServerManager class to perform the update.

Applies to