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
- ExpandedWrapper.cs
- OleDbConnection.cs
- SimpleHandlerBuildProvider.cs
- SpinWait.cs
- XmlTypeAttribute.cs
- TabControl.cs
- StackOverflowException.cs
- FileDialogCustomPlace.cs
- PictureBoxDesigner.cs
- DecimalConstantAttribute.cs
- Reference.cs
- FlowchartDesigner.Helpers.cs
- XsltOutput.cs
- FrugalMap.cs
- InfoCardTrace.cs
- InkCanvas.cs
- DataBindingsDialog.cs
- Span.cs
- StopRoutingHandler.cs
- CompilerError.cs
- ObjectSet.cs
- ToolStripSplitButton.cs
- PrintControllerWithStatusDialog.cs
- QuaternionValueSerializer.cs
- RotationValidation.cs
- wmiprovider.cs
- Memoizer.cs
- WriteStateInfoBase.cs
- ValidatingReaderNodeData.cs
- QueryPageSettingsEventArgs.cs
- ObjectDataSourceMethodEditor.cs
- OleDbTransaction.cs
- AssertValidation.cs
- ListenerElementsCollection.cs
- DesignBindingEditor.cs
- XmlConverter.cs
- ValidationRule.cs
- ConsoleKeyInfo.cs
- SoapConverter.cs
- RichTextBox.cs
- XslAst.cs
- DtrList.cs
- DocumentPageHost.cs
- OdbcParameter.cs
- MasterPageCodeDomTreeGenerator.cs
- TextCharacters.cs
- userdatakeys.cs
- TraceListener.cs
- UmAlQuraCalendar.cs
- CommandField.cs
- HatchBrush.cs
- SkewTransform.cs
- AQNBuilder.cs
- XmlUtilWriter.cs
- RankException.cs
- InternalPermissions.cs
- Span.cs
- MergablePropertyAttribute.cs
- ClientRoleProvider.cs
- DrawingServices.cs
- ColumnHeaderConverter.cs
- ReadWriteObjectLock.cs
- DesignTimeTemplateParser.cs
- COM2PropertyDescriptor.cs
- RSACryptoServiceProvider.cs
- Group.cs
- GetImportedCardRequest.cs
- StringComparer.cs
- InitializerFacet.cs
- FormViewModeEventArgs.cs
- WebPartCatalogCloseVerb.cs
- AcceleratedTokenProvider.cs
- ExpressionNode.cs
- XmlDataDocument.cs
- isolationinterop.cs
- DocumentViewer.cs
- DynamicPropertyHolder.cs
- UnregisterInfo.cs
- TrackPoint.cs
- BuildDependencySet.cs
- IApplicationTrustManager.cs
- LinkLabel.cs
- DataStreamFromComStream.cs
- CacheSection.cs
- SettingsProviderCollection.cs
- Command.cs
- ImpersonateTokenRef.cs
- DbSetClause.cs
- TemplateLookupAction.cs
- webeventbuffer.cs
- BitmapMetadataBlob.cs
- StatusBarDrawItemEvent.cs
- X509SecurityToken.cs
- UnsafeNativeMethods.cs
- LeaseManager.cs
- SetterBaseCollection.cs
- ReaderContextStackData.cs
- SystemBrushes.cs
- ResourcesGenerator.cs
- backend.cs