Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / serverconfig.cs / 4 / 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; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemEvents.cs
- HtmlTable.cs
- UpdateManifestForBrowserApplication.cs
- documentation.cs
- DataViewListener.cs
- PackagePartCollection.cs
- complextypematerializer.cs
- CommandLibraryHelper.cs
- SkinBuilder.cs
- ObjectContext.cs
- GridSplitter.cs
- CodeTypeParameterCollection.cs
- QilParameter.cs
- ControlValuePropertyAttribute.cs
- StatusBarDesigner.cs
- AsyncOperationManager.cs
- RoleManagerSection.cs
- DataPager.cs
- DetailsViewRowCollection.cs
- CustomSignedXml.cs
- DbParameterCollectionHelper.cs
- HandlerBase.cs
- QueryOutputWriter.cs
- BufferedReceiveElement.cs
- XsltCompileContext.cs
- InfoCardMetadataExchangeClient.cs
- ListDictionaryInternal.cs
- figurelengthconverter.cs
- UriSectionReader.cs
- DataKey.cs
- CharKeyFrameCollection.cs
- CompatibleIComparer.cs
- ResourceCategoryAttribute.cs
- TextEndOfParagraph.cs
- Expander.cs
- HttpResponseInternalWrapper.cs
- ToolStripMenuItemCodeDomSerializer.cs
- CustomCredentialPolicy.cs
- CommonProperties.cs
- DataControlReferenceCollection.cs
- DrawListViewColumnHeaderEventArgs.cs
- WebConfigurationFileMap.cs
- FormClosingEvent.cs
- TransportBindingElementImporter.cs
- ParameterCollection.cs
- SafeMemoryMappedFileHandle.cs
- FileDetails.cs
- PlanCompiler.cs
- MaskedTextBoxDesignerActionList.cs
- Label.cs
- XmlAtomicValue.cs
- SqlError.cs
- _OverlappedAsyncResult.cs
- WebBrowserDocumentCompletedEventHandler.cs
- StreamingContext.cs
- DataObjectEventArgs.cs
- SqlRetyper.cs
- Function.cs
- RoutedEventArgs.cs
- CodeSnippetTypeMember.cs
- AuthenticationModulesSection.cs
- ContextMenuStripActionList.cs
- HierarchicalDataSourceControl.cs
- FixedSOMGroup.cs
- SQLString.cs
- DBDataPermissionAttribute.cs
- ListArgumentProvider.cs
- SessionParameter.cs
- PackageRelationshipSelector.cs
- LineServicesCallbacks.cs
- ToolZoneDesigner.cs
- PickDesigner.xaml.cs
- RbTree.cs
- ObjectReaderCompiler.cs
- ServiceBehaviorAttribute.cs
- Guid.cs
- TextElementAutomationPeer.cs
- Oci.cs
- SspiNegotiationTokenAuthenticator.cs
- ObjectAnimationBase.cs
- ClientRuntimeConfig.cs
- FreeFormDragDropManager.cs
- FactoryId.cs
- TextServicesCompartmentContext.cs
- FormViewPageEventArgs.cs
- InternalsVisibleToAttribute.cs
- PageAdapter.cs
- Quad.cs
- EnumerableCollectionView.cs
- WebMessageEncodingBindingElement.cs
- RegexTypeEditor.cs
- InputScope.cs
- XPathNavigatorReader.cs
- CodeArrayIndexerExpression.cs
- PathStreamGeometryContext.cs
- HttpTransportManager.cs
- InlineUIContainer.cs
- documentsequencetextpointer.cs
- XmlIncludeAttribute.cs
- FixUpCollection.cs