Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / Configuration / serverconfig.cs / 1 / serverconfig.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System.Configuration;
using System.Collections;
using System.Globalization;
using System.Text;
using System.Threading;
using System.Web.Util;
using System.Web.Hosting;
using System.Web.Caching;
using System.Web.Compilation;
using Microsoft.Win32;
//
// Abstracts differences between config retreived from IIS 6 metabase
// and config retreived from new IIS7 configuration system.
//
static internal class ServerConfig {
static int s_iisMajorVersion = 0;
internal static bool UseMetabase {
get {
if (s_iisMajorVersion == 0) {
int version;
try {
object ver = Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\InetStp", "MajorVersion", 0);
version = (ver != null) ? (int) ver : -1;
}
catch (ArgumentException) {
// Ignore ArgumentException from Registry.GetValue. This may indicate that the key does not exist, i.e. IIS not installed
version = -1; // Key not found
}
Interlocked.CompareExchange(ref s_iisMajorVersion, version, 0);
}
return s_iisMajorVersion <= 6;
}
}
static internal IServerConfig GetInstance() {
// IIS 7 bits on <= IIS 6: use the metabase
if (UseMetabase) {
return MetabaseServerConfig.GetInstance();
}
return ProcessHostServerConfig.GetInstance();
}
//
// Return true in cases where web server configuration should be used
// to resolve paths.
//
static int s_useServerConfig = -1;
static internal bool UseServerConfig {
get {
if (s_useServerConfig == -1) {
int useServerConfig = 0;
// Must use web server config if there is no hosting environment
if (!HostingEnvironment.IsHosted) {
useServerConfig = 1;
}
// Hosting environment is the web server
else if (HostingEnvironment.ApplicationHost is ISAPIApplicationHost) {
useServerConfig = 1;
}
// Hosting environment is the web server
else if (HostingEnvironment.IsUnderIISProcess && !BuildManagerHost.InClientBuildManager) {
useServerConfig = 1;
}
Interlocked.CompareExchange(ref s_useServerConfig, useServerConfig, -1);
}
return s_useServerConfig == 1;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System.Configuration;
using System.Collections;
using System.Globalization;
using System.Text;
using System.Threading;
using System.Web.Util;
using System.Web.Hosting;
using System.Web.Caching;
using System.Web.Compilation;
using Microsoft.Win32;
//
// Abstracts differences between config retreived from IIS 6 metabase
// and config retreived from new IIS7 configuration system.
//
static internal class ServerConfig {
static int s_iisMajorVersion = 0;
internal static bool UseMetabase {
get {
if (s_iisMajorVersion == 0) {
int version;
try {
object ver = Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\InetStp", "MajorVersion", 0);
version = (ver != null) ? (int) ver : -1;
}
catch (ArgumentException) {
// Ignore ArgumentException from Registry.GetValue. This may indicate that the key does not exist, i.e. IIS not installed
version = -1; // Key not found
}
Interlocked.CompareExchange(ref s_iisMajorVersion, version, 0);
}
return s_iisMajorVersion <= 6;
}
}
static internal IServerConfig GetInstance() {
// IIS 7 bits on <= IIS 6: use the metabase
if (UseMetabase) {
return MetabaseServerConfig.GetInstance();
}
return ProcessHostServerConfig.GetInstance();
}
//
// Return true in cases where web server configuration should be used
// to resolve paths.
//
static int s_useServerConfig = -1;
static internal bool UseServerConfig {
get {
if (s_useServerConfig == -1) {
int useServerConfig = 0;
// Must use web server config if there is no hosting environment
if (!HostingEnvironment.IsHosted) {
useServerConfig = 1;
}
// Hosting environment is the web server
else if (HostingEnvironment.ApplicationHost is ISAPIApplicationHost) {
useServerConfig = 1;
}
// Hosting environment is the web server
else if (HostingEnvironment.IsUnderIISProcess && !BuildManagerHost.InClientBuildManager) {
useServerConfig = 1;
}
Interlocked.CompareExchange(ref s_useServerConfig, useServerConfig, -1);
}
return s_useServerConfig == 1;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ChildTable.cs
- HttpGetClientProtocol.cs
- SimpleBitVector32.cs
- SymbolDocumentInfo.cs
- IndexedString.cs
- WindowsFormsHelpers.cs
- CqlIdentifiers.cs
- ActivityExecutor.cs
- IdentityReference.cs
- TransactionInformation.cs
- LocalBuilder.cs
- OwnerDrawPropertyBag.cs
- ExtendedProperty.cs
- CapabilitiesRule.cs
- ComboBoxItem.cs
- FileDetails.cs
- ObjectQueryExecutionPlan.cs
- SecurityKeyIdentifier.cs
- _AutoWebProxyScriptEngine.cs
- BamlLocalizationDictionary.cs
- PowerStatus.cs
- TableLayoutStyleCollection.cs
- HostingEnvironmentException.cs
- BinaryObjectWriter.cs
- WebPartEditorOkVerb.cs
- ContainerCodeDomSerializer.cs
- IgnorePropertiesAttribute.cs
- NamespaceDecl.cs
- SQLSingleStorage.cs
- CriticalHandle.cs
- CngKey.cs
- TypefaceCollection.cs
- MonitorWrapper.cs
- XPathAncestorIterator.cs
- DefaultBinder.cs
- TreeView.cs
- JournalEntry.cs
- SchemaMapping.cs
- DiscoveryVersionConverter.cs
- PageAsyncTask.cs
- WeakReferenceList.cs
- ClientTargetCollection.cs
- Fault.cs
- RuntimeArgumentHandle.cs
- ConvertEvent.cs
- CommonDialog.cs
- RadioButtonBaseAdapter.cs
- StringFreezingAttribute.cs
- FtpRequestCacheValidator.cs
- IntSecurity.cs
- MasterPageCodeDomTreeGenerator.cs
- XmlnsDictionary.cs
- CodeMemberProperty.cs
- ToolTipService.cs
- ExpressionTable.cs
- baseshape.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- OleDbException.cs
- CapabilitiesPattern.cs
- InstanceKeyNotReadyException.cs
- Internal.cs
- RowCache.cs
- BuildProvider.cs
- AvTraceDetails.cs
- MruCache.cs
- SimpleFieldTemplateFactory.cs
- WebPartEventArgs.cs
- QilChoice.cs
- Memoizer.cs
- XmlnsCompatibleWithAttribute.cs
- DiffuseMaterial.cs
- StringFunctions.cs
- ExportOptions.cs
- UpdateProgress.cs
- GridViewDeletedEventArgs.cs
- DesignTimeVisibleAttribute.cs
- DynamicObject.cs
- RemotingClientProxy.cs
- Compiler.cs
- SchemaSetCompiler.cs
- SubpageParaClient.cs
- __Filters.cs
- CleanUpVirtualizedItemEventArgs.cs
- SharedTcpTransportManager.cs
- Attributes.cs
- StandardToolWindows.cs
- DataObject.cs
- SessionParameter.cs
- Closure.cs
- InputLanguageManager.cs
- DataBindingHandlerAttribute.cs
- ProfilePropertySettingsCollection.cs
- Asn1IntegerConverter.cs
- ShaderEffect.cs
- BuildProviderCollection.cs
- ComponentSerializationService.cs
- ScrollChrome.cs
- CodeTypeMemberCollection.cs
- ConstrainedDataObject.cs
- IndividualDeviceConfig.cs