Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / serverconfig.cs / 3 / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SequentialUshortCollection.cs
- FilterRepeater.cs
- DesignTimeParseData.cs
- PersonalizablePropertyEntry.cs
- AliasGenerator.cs
- XmlSchemaInfo.cs
- DecimalKeyFrameCollection.cs
- Odbc32.cs
- ExpressionPrefixAttribute.cs
- MessageHeaderException.cs
- DefaultValueTypeConverter.cs
- BitConverter.cs
- XslTransform.cs
- webbrowsersite.cs
- TrimSurroundingWhitespaceAttribute.cs
- SizeAnimationClockResource.cs
- MatrixUtil.cs
- BitStream.cs
- DebuggerAttributes.cs
- OutputBuffer.cs
- ParentQuery.cs
- ProtectedUri.cs
- followingsibling.cs
- FormsIdentity.cs
- LinkClickEvent.cs
- DayRenderEvent.cs
- DocumentXmlWriter.cs
- MultipleViewProviderWrapper.cs
- Button.cs
- CodeLabeledStatement.cs
- Table.cs
- MenuEventArgs.cs
- CatalogPartCollection.cs
- SimpleApplicationHost.cs
- Peer.cs
- RightsManagementInformation.cs
- XmlUrlResolver.cs
- InternalPolicyElement.cs
- DataRelation.cs
- ZipPackagePart.cs
- RowToFieldTransformer.cs
- GroupStyle.cs
- ProfileBuildProvider.cs
- SqlDataSourceStatusEventArgs.cs
- RequiredAttributeAttribute.cs
- SiteMapDataSourceView.cs
- DataStreamFromComStream.cs
- ListParagraph.cs
- State.cs
- WinEventWrap.cs
- TextEditorParagraphs.cs
- DataGridViewLayoutData.cs
- TaskResultSetter.cs
- FileRecordSequenceHelper.cs
- DataGridTextBoxColumn.cs
- MSG.cs
- WindowsGraphics.cs
- DrawingGroup.cs
- ContentTextAutomationPeer.cs
- MappingModelBuildProvider.cs
- TextSyndicationContentKindHelper.cs
- Polyline.cs
- DefaultHttpHandler.cs
- GeneralTransform3DGroup.cs
- CachedFontFamily.cs
- MenuItemStyle.cs
- TextEvent.cs
- KeyFrames.cs
- MediaTimeline.cs
- DiffuseMaterial.cs
- XmlAnyAttributeAttribute.cs
- TextServicesHost.cs
- _Win32.cs
- ToolboxItemAttribute.cs
- DesignSurfaceCollection.cs
- CultureInfo.cs
- WebPartPersonalization.cs
- ObjectViewQueryResultData.cs
- AdjustableArrowCap.cs
- LogReservationCollection.cs
- prefixendpointaddressmessagefiltertable.cs
- TraceHwndHost.cs
- ExtendedProperty.cs
- CompoundFileReference.cs
- ModuleConfigurationInfo.cs
- PageSettings.cs
- RecognitionEventArgs.cs
- SqlServices.cs
- CodeComment.cs
- ButtonColumn.cs
- Exception.cs
- CharAnimationUsingKeyFrames.cs
- TableDetailsCollection.cs
- WindowsGrip.cs
- OlePropertyStructs.cs
- SecurityUtils.cs
- MethodAccessException.cs
- CalendarDataBindingHandler.cs
- ToolStripPanelRenderEventArgs.cs
- cookieexception.cs