internal Application(ConfigurationElement element, ApplicationCollection parent)
: base(element, "application", null, parent, null, null)
{
Parent = parent;
// IMPORTANT: avoid duplicate application tag.
ForceCreateEntity();
if (string.IsNullOrWhiteSpace(Path))
{
// IMPORTANT: fix path attribute after initialization.
Path = "/";
}
_collection = new VirtualDirectoryCollection(this);
if (element == null)
{
return;
}
foreach (ConfigurationElement node in (ConfigurationElementCollection)element)
{
_collection.InternalAdd(new VirtualDirectory(node, _collection));
}
Location = this.Site.Name + this.Path;
foreach (ApplicationPool pool in Server.ApplicationPools)
{
if (pool.Name == ApplicationPoolName)
{
pool.ApplicationCount++;
}
}
}