Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / serverconfig.cs / 1305376 / serverconfig.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Configuration; using System.Collections; using System.Globalization; using System.Security; using System.Security.Permissions; 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 { [RegistryPermissionAttribute(SecurityAction.Assert, Read = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\InetStp")] 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.ApplicationHostInternal 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.Security; using System.Security.Permissions; 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 { [RegistryPermissionAttribute(SecurityAction.Assert, Read = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\InetStp")] 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.ApplicationHostInternal 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
- IdentityModelDictionary.cs
- BinaryWriter.cs
- ValuePattern.cs
- IntellisenseTextBox.cs
- ToolboxComponentsCreatingEventArgs.cs
- MimeBasePart.cs
- EntryPointNotFoundException.cs
- QueryResponse.cs
- TagPrefixInfo.cs
- MatrixAnimationBase.cs
- ErrorWebPart.cs
- HeaderUtility.cs
- QueryLifecycle.cs
- Type.cs
- PeerTransportElement.cs
- DecimalFormatter.cs
- EDesignUtil.cs
- ArrangedElement.cs
- PerformanceCounterPermissionEntry.cs
- NavigationProperty.cs
- GeneralTransform3DCollection.cs
- PageParser.cs
- WebPartHelpVerb.cs
- RequestTimeoutManager.cs
- EventInfo.cs
- DataContractSerializerOperationGenerator.cs
- BinaryCommonClasses.cs
- StorageBasedPackageProperties.cs
- ToolStripStatusLabel.cs
- DesignerSerializationManager.cs
- ParentQuery.cs
- SqlUDTStorage.cs
- EncryptedData.cs
- XmlSigningNodeWriter.cs
- ToolStripButton.cs
- UInt16Converter.cs
- AssemblyFilter.cs
- CompilerTypeWithParams.cs
- GlobalAllocSafeHandle.cs
- Literal.cs
- Invariant.cs
- MenuItem.cs
- PropertyInformation.cs
- WindowsTreeView.cs
- TdsValueSetter.cs
- SplitContainer.cs
- ChangePasswordAutoFormat.cs
- ActiveDesignSurfaceEvent.cs
- SchemaTableOptionalColumn.cs
- Configuration.cs
- DrawingContextWalker.cs
- AsyncOperation.cs
- DBPropSet.cs
- TabletDevice.cs
- KeySplineConverter.cs
- InternalConfigHost.cs
- ProcessHostConfigUtils.cs
- Screen.cs
- DataSourceHelper.cs
- XamlToRtfParser.cs
- SpoolingTask.cs
- NegotiateStream.cs
- DataServiceStreamProviderWrapper.cs
- AnnotationComponentChooser.cs
- SafeNativeMethods.cs
- AbstractSvcMapFileLoader.cs
- ISAPIApplicationHost.cs
- AttributeParameterInfo.cs
- DataGridViewCellStateChangedEventArgs.cs
- PermissionListSet.cs
- ContentFileHelper.cs
- BoolExpression.cs
- ProgressBar.cs
- TextEditorTyping.cs
- DispatcherSynchronizationContext.cs
- LessThan.cs
- ConfigXmlAttribute.cs
- DirectoryObjectSecurity.cs
- IntPtr.cs
- shaper.cs
- XmlIgnoreAttribute.cs
- WebBrowserNavigatingEventHandler.cs
- messageonlyhwndwrapper.cs
- CompositeCollectionView.cs
- IDQuery.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- EncodingNLS.cs
- EndpointConfigContainer.cs
- ResourceDescriptionAttribute.cs
- MetadataExporter.cs
- ProxyGenerationError.cs
- HMACSHA512.cs
- SurrogateDataContract.cs
- RepeatButtonAutomationPeer.cs
- CriticalHandle.cs
- XmlIlGenerator.cs
- ParamArrayAttribute.cs
- ScriptManagerProxy.cs
- TypeConverterHelper.cs
- MimeTypeAttribute.cs