108 lines
4.7 KiB
C#
108 lines
4.7 KiB
C#
|
//------------------------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
namespace System.ServiceModel.Configuration
|
||
|
{
|
||
|
using System.Configuration;
|
||
|
using System.Runtime;
|
||
|
using System.Security;
|
||
|
using System.Security.Permissions;
|
||
|
using System.ServiceModel;
|
||
|
|
||
|
public sealed partial class ServiceHostingEnvironmentSection : ConfigurationSection
|
||
|
{
|
||
|
public ServiceHostingEnvironmentSection()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
protected override void PostDeserialize()
|
||
|
{
|
||
|
// Perf optimization. If the configuration is coming from machine.config
|
||
|
// It is safe and we don't need to check for permissions.
|
||
|
if (EvaluationContext.IsMachineLevel)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (PropertyValueOrigin.SetHere ==
|
||
|
ElementInformation.Properties[ConfigurationStrings.MinFreeMemoryPercentageToActivateService].ValueOrigin)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
|
||
|
}
|
||
|
catch (SecurityException)
|
||
|
{
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
|
||
|
SR.GetString(SR.Hosting_MemoryGatesCheckFailedUnderPartialTrust)));
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.DefaultCollectionName, Options = ConfigurationPropertyOptions.IsDefaultCollection)]
|
||
|
public TransportConfigurationTypeElementCollection TransportConfigurationTypes
|
||
|
{
|
||
|
get { return (TransportConfigurationTypeElementCollection)base[ConfigurationStrings.DefaultCollectionName]; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.BaseAddressPrefixFilters, Options = ConfigurationPropertyOptions.None)]
|
||
|
public BaseAddressPrefixFilterElementCollection BaseAddressPrefixFilters
|
||
|
{
|
||
|
get { return (BaseAddressPrefixFilterElementCollection)base[ConfigurationStrings.BaseAddressPrefixFilters]; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.ServiceActivations, Options = ConfigurationPropertyOptions.None)]
|
||
|
public ServiceActivationElementCollection ServiceActivations
|
||
|
{
|
||
|
get { return (ServiceActivationElementCollection)base[ConfigurationStrings.ServiceActivations]; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.AspNetCompatibilityEnabled, DefaultValue = false)]
|
||
|
public bool AspNetCompatibilityEnabled
|
||
|
{
|
||
|
get { return (bool)base[ConfigurationStrings.AspNetCompatibilityEnabled]; }
|
||
|
set { base[ConfigurationStrings.AspNetCompatibilityEnabled] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.CloseIdleServicesAtLowMemory, DefaultValue = false)]
|
||
|
public bool CloseIdleServicesAtLowMemory
|
||
|
{
|
||
|
get { return (bool)base[ConfigurationStrings.CloseIdleServicesAtLowMemory]; }
|
||
|
set { base[ConfigurationStrings.CloseIdleServicesAtLowMemory] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.MinFreeMemoryPercentageToActivateService, DefaultValue = 5)]
|
||
|
[IntegerValidator(MinValue = 0, MaxValue = 99)]
|
||
|
public int MinFreeMemoryPercentageToActivateService
|
||
|
{
|
||
|
get { return (int)base[ConfigurationStrings.MinFreeMemoryPercentageToActivateService]; }
|
||
|
set { base[ConfigurationStrings.MinFreeMemoryPercentageToActivateService] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.MultipleSiteBindingsEnabled, DefaultValue = false)]
|
||
|
public bool MultipleSiteBindingsEnabled
|
||
|
{
|
||
|
get { return (bool)base[ConfigurationStrings.MultipleSiteBindingsEnabled]; }
|
||
|
set { base[ConfigurationStrings.MultipleSiteBindingsEnabled] = value; }
|
||
|
}
|
||
|
|
||
|
internal static ServiceHostingEnvironmentSection GetSection()
|
||
|
{
|
||
|
return (ServiceHostingEnvironmentSection)ConfigurationHelpers.GetSection(ConfigurationStrings.ServiceHostingEnvironmentSectionPath);
|
||
|
}
|
||
|
|
||
|
[Fx.Tag.SecurityNote(Critical = "Calls Critical method UnsafeGetSection which elevates in order to fetch config."
|
||
|
+ "Caller must guard access to resultant config section.")]
|
||
|
[SecurityCritical]
|
||
|
internal static ServiceHostingEnvironmentSection UnsafeGetSection()
|
||
|
{
|
||
|
return (ServiceHostingEnvironmentSection)ConfigurationHelpers.UnsafeGetSection(ConfigurationStrings.ServiceHostingEnvironmentSectionPath);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|