This topic has not yet been rated - Rate this topic

SiteLimits Class

IIS 7.0

Exposes connection-related limits for a Web site.

System..::..Object
  Microsoft.Web.Administration..::..ConfigurationElement
    Microsoft.Web.Administration..::..SiteLimits

Namespace:  Microsoft.Web.Administration
Assembly:  Microsoft.Web.Administration (in Microsoft.Web.Administration.dll)
public sealed class SiteLimits : ConfigurationElement

The SiteLimits type exposes the following members.

  Name Description
Public property Attributes Gets a configuration attribute collection that contains the list of attributes for this element. (Inherited from ConfigurationElement.)
Public property ChildElements Gets all the child elements of the current element. (Inherited from ConfigurationElement.)
Public property ConnectionTimeout Gets or sets the period of time that IIS 7 waits before it considers a connection inactive and terminates it.
Public property ElementTagName Gets the XML tag name of the current element. (Inherited from ConfigurationElement.)
Public property IsLocallyStored Gets a value indicating whether the configuration element is stored in a particular configuration file. (Inherited from ConfigurationElement.)
Public property Item Gets or sets an attribute with the specified name. (Inherited from ConfigurationElement.)
Public property MaxBandwidth Gets or sets the maximum network bandwidth, in bytes per second, used for IIS 7.
Public property MaxConnections Gets or sets the maximum number of simultaneous connections to a server.
Public property Methods Gets a collection of methods for the configuration element. (Inherited from ConfigurationElement.)
Public property RawAttributes Gets the raw attribute names and values for the current configuration element. (Inherited from ConfigurationElement.)
Public property Schema Gets the schema for the current element. (Inherited from ConfigurationElement.)
Top
  Name Description
Public method Delete (Inherited from ConfigurationElement.)
Public method Equals (Inherited from Object.)
Protected method Finalize (Inherited from Object.)
Public method GetAttribute Returns a ConfigurationAttribute object that represents the requested attribute. (Inherited from ConfigurationElement.)
Public method GetAttributeValue Returns the value of the specified attribute. (Inherited from ConfigurationElement.)
Public method GetChildElement(String) Returns a child element that is under the current configuration element and has the specified name. (Inherited from ConfigurationElement.)
Public method GetChildElement(String, Type) Returns a child element that is under the current configuration element and has the specified name and type. (Inherited from ConfigurationElement.)
Public method GetCollection()()()() Returns the default collection for the current configuration element. (Inherited from ConfigurationElement.)
Public method GetCollection(String) Returns all configuration elements that belong to the current configuration element. (Inherited from ConfigurationElement.)
Public method GetCollection(Type) Returns the configuration element that has the specified type and is under the current configuration element. (Inherited from ConfigurationElement.)
Public method GetCollection(String, Type) Returns the configuration element that has the specified name and type and is under the current configuration element. (Inherited from ConfigurationElement.)
Public method GetHashCode (Inherited from Object.)
Public method GetMetadata Returns metadata values from the element schema. (Inherited from ConfigurationElement.)
Public method GetType (Inherited from Object.)
Protected method MemberwiseClone (Inherited from Object.)
Public method SetAttributeValue Sets the value of the specified attribute. (Inherited from ConfigurationElement.)
Public method SetMetadata Sets metadata values from the element schema. (Inherited from ConfigurationElement.)
Public method ToString (Inherited from Object.)
Top

The SiteLimits object configures connection-related limits for a Web site. You can use this class to prevent a site from taxing the resources of a server beyond limits that you define.

The following example demonstrates the properties of the SiteLimits class. This example retrieves the Site objects in the service module, modifies the SiteLimits property values, places the Site object (including the SiteLimits object) into a property bag, and displays the property values in the page module.

Service module:


// Gets the site collection from the server.
[ModuleServiceMethod(PassThrough = true)]
public ArrayList GetSiteCollection()
{
    // Use an ArrayList to transfer objects to the client.
    ArrayList arrayOfSiteBags = new ArrayList();

    ServerManager serverManager = new ServerManager();
    SiteCollection siteCollection = serverManager.Sites;
    foreach (Site site in siteCollection)
    {
        Boolean dirty = false;
        // Check the connection timeout. If > 300 seconds reset to 2 minutes.
        if (site.Limits.ConnectionTimeout > TimeSpan.FromSeconds(300))
        {
            site.Limits.ConnectionTimeout = TimeSpan.FromMinutes(2);
            dirty = true;
        } 
        // Check the maximum bandwidth. If <100000 reset to 4294967295.
        if (site.Limits.MaxBandwidth < 100000)
        {
            site.Limits.MaxBandwidth = 4294967295;
            dirty = true;
        }
        // Check the maximum connections. If <100 reset to 150.
        if (site.Limits.MaxConnections < 100)
        {
            site.Limits.MaxConnections = 150;
            dirty = true;
        }
        if (dirty)
        {
            serverManager.CommitChanges();
        }
        PropertyBag siteBag = new PropertyBag();
        siteBag[ServerManagerDemoGlobals.SitesArray] = site;
        arrayOfSiteBags.Add(siteBag);
    }
    return arrayOfSiteBags;
}


Page module:


_serviceProxy = (ServerManagerDemoModuleServiceProxy)
    Connection.CreateProxy(Module, typeof(ServerManagerDemoModuleServiceProxy));

// Get the site collection.
ArrayList siteCollectionArray = _serviceProxy.GetSiteCollection();
string sitedisplay = null;
sitedisplay = "There are " + siteCollectionArray.Count.ToString() + " sites.\n";
foreach (PropertyBag bag in siteCollectionArray)
{
    Site site = (Site)bag[ServerManagerDemoGlobals.SitesArray];
    sitedisplay += "   " + "ID: " + site.Id + " - " + site.Name + "\n";

    // Get the application collection for the site.
    ApplicationCollection applicationCollection = site.Applications;
    sitedisplay += "      has " + applicationCollection.Count + " applications:\n";
    foreach (Microsoft.Web.Administration.Application application in applicationCollection)
    {
        sitedisplay += "        path: " + application.Path + 
            ": in apppool - " + application.ApplicationPoolName + "\n";
    }

    // Get the Limits for the site.
    SiteLimits siteLimits = site.Limits;
    sitedisplay += "\n      SiteLimits:\n";
    sitedisplay += "        is limited to " + siteLimits.MaxConnections.ToString() + " connections.\n";
    sitedisplay += "        with a max bandwidth of " + siteLimits.MaxBandwidth + " bytes/sec.\n";
    sitedisplay += "        timeout of " + siteLimits.ConnectionTimeout + " minutes.\n\n";
}
                testLabel.Text = sitedisplay;


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ