Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / Configuration / ProcessHostConfigUtils.cs / 1 / ProcessHostConfigUtils.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System.Configuration;
using System.Collections;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Threading;
using System.Xml;
using System.Security;
using System.Text;
using System.Web.Util;
using System.Web.UI;
using System.IO;
using System.Web.Hosting;
using System.Runtime.ConstrainedExecution;
//
// Uses IIS 7 native config
//
internal static class ProcessHostConfigUtils {
internal const uint DEFAULT_SITE_ID_UINT = 1;
internal const string DEFAULT_SITE_ID_STRING = "1";
private static string s_defaultSiteName;
private static int s_InitedExternalConfig;
private static NativeConfigWrapper _configWrapper;
// static class ctor
static ProcessHostConfigUtils() {
HttpRuntime.ForceStaticInit();
}
internal static void InitStandaloneConfig() {
if (!HostingEnvironment.IsUnderIISProcess) {
if (!ServerConfig.UseMetabase) {
int inited= Interlocked.Exchange(ref s_InitedExternalConfig, 1);
// only do this once
if (0 == inited) {
_configWrapper = new NativeConfigWrapper();
}
}
}
}
internal static string MapPathActual(string siteName, VirtualPath path) {
string physicalPath = null;
IntPtr pBstr = IntPtr.Zero;
int cBstr = 0;
try {
int result = UnsafeIISMethods.MgdMapPathDirect(siteName, path.VirtualPathString, out pBstr, out cBstr);
if (result < 0) {
throw new InvalidOperationException(SR.GetString(SR.Cannot_map_path, path.VirtualPathString));
}
physicalPath = (pBstr != IntPtr.Zero) ? StringUtil.StringFromWCharPtr(pBstr, cBstr) : null;
}
finally {
if (pBstr != IntPtr.Zero) {
Marshal.FreeBSTR(pBstr);
}
}
return physicalPath;
}
internal static string GetSiteNameFromId(uint siteId) {
if ( siteId == DEFAULT_SITE_ID_UINT && s_defaultSiteName != null) {
return s_defaultSiteName;
}
IntPtr pBstr = IntPtr.Zero;
int cBstr = 0;
string siteName = null;
try {
int result = UnsafeIISMethods.MgdGetSiteNameFromId(siteId, out pBstr, out cBstr);
siteName = (result == 0 && pBstr != IntPtr.Zero) ? StringUtil.StringFromWCharPtr(pBstr, cBstr) : String.Empty;
}
finally {
if (pBstr != IntPtr.Zero) {
Marshal.FreeBSTR(pBstr);
}
}
if ( siteId == DEFAULT_SITE_ID_UINT) {
s_defaultSiteName = siteName;
}
return siteName;
}
private class NativeConfigWrapper : CriticalFinalizerObject {
internal NativeConfigWrapper() {
int result = UnsafeIISMethods.MgdInitNativeConfig();
if (result < 0) {
s_InitedExternalConfig = 0;
throw new InvalidOperationException(SR.GetString(SR.Cant_Init_Native_Config, result.ToString("X8", CultureInfo.InvariantCulture)));
}
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
~NativeConfigWrapper() {
UnsafeIISMethods.MgdTerminateNativeConfig();
}
}
}
}
// 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.Runtime.InteropServices;
using System.Threading;
using System.Xml;
using System.Security;
using System.Text;
using System.Web.Util;
using System.Web.UI;
using System.IO;
using System.Web.Hosting;
using System.Runtime.ConstrainedExecution;
//
// Uses IIS 7 native config
//
internal static class ProcessHostConfigUtils {
internal const uint DEFAULT_SITE_ID_UINT = 1;
internal const string DEFAULT_SITE_ID_STRING = "1";
private static string s_defaultSiteName;
private static int s_InitedExternalConfig;
private static NativeConfigWrapper _configWrapper;
// static class ctor
static ProcessHostConfigUtils() {
HttpRuntime.ForceStaticInit();
}
internal static void InitStandaloneConfig() {
if (!HostingEnvironment.IsUnderIISProcess) {
if (!ServerConfig.UseMetabase) {
int inited= Interlocked.Exchange(ref s_InitedExternalConfig, 1);
// only do this once
if (0 == inited) {
_configWrapper = new NativeConfigWrapper();
}
}
}
}
internal static string MapPathActual(string siteName, VirtualPath path) {
string physicalPath = null;
IntPtr pBstr = IntPtr.Zero;
int cBstr = 0;
try {
int result = UnsafeIISMethods.MgdMapPathDirect(siteName, path.VirtualPathString, out pBstr, out cBstr);
if (result < 0) {
throw new InvalidOperationException(SR.GetString(SR.Cannot_map_path, path.VirtualPathString));
}
physicalPath = (pBstr != IntPtr.Zero) ? StringUtil.StringFromWCharPtr(pBstr, cBstr) : null;
}
finally {
if (pBstr != IntPtr.Zero) {
Marshal.FreeBSTR(pBstr);
}
}
return physicalPath;
}
internal static string GetSiteNameFromId(uint siteId) {
if ( siteId == DEFAULT_SITE_ID_UINT && s_defaultSiteName != null) {
return s_defaultSiteName;
}
IntPtr pBstr = IntPtr.Zero;
int cBstr = 0;
string siteName = null;
try {
int result = UnsafeIISMethods.MgdGetSiteNameFromId(siteId, out pBstr, out cBstr);
siteName = (result == 0 && pBstr != IntPtr.Zero) ? StringUtil.StringFromWCharPtr(pBstr, cBstr) : String.Empty;
}
finally {
if (pBstr != IntPtr.Zero) {
Marshal.FreeBSTR(pBstr);
}
}
if ( siteId == DEFAULT_SITE_ID_UINT) {
s_defaultSiteName = siteName;
}
return siteName;
}
private class NativeConfigWrapper : CriticalFinalizerObject {
internal NativeConfigWrapper() {
int result = UnsafeIISMethods.MgdInitNativeConfig();
if (result < 0) {
s_InitedExternalConfig = 0;
throw new InvalidOperationException(SR.GetString(SR.Cant_Init_Native_Config, result.ToString("X8", CultureInfo.InvariantCulture)));
}
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
~NativeConfigWrapper() {
UnsafeIISMethods.MgdTerminateNativeConfig();
}
}
}
}
// 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
- Panel.cs
- XmlSchemaAnnotation.cs
- SingleBodyParameterMessageFormatter.cs
- EncryptedType.cs
- XmlSchemaDocumentation.cs
- EventDescriptor.cs
- TextParentUndoUnit.cs
- RegexCapture.cs
- Int32KeyFrameCollection.cs
- DataControlFieldCollection.cs
- WebBrowserContainer.cs
- TextSelectionHelper.cs
- SerializationSectionGroup.cs
- securitycriticaldataformultiplegetandset.cs
- MessageSmuggler.cs
- AspNetCacheProfileAttribute.cs
- MsmqIntegrationMessageProperty.cs
- HitTestParameters.cs
- MemoryMappedFileSecurity.cs
- DataContract.cs
- Page.cs
- ProcessStartInfo.cs
- DecimalConstantAttribute.cs
- PreviewKeyDownEventArgs.cs
- CodeMethodReturnStatement.cs
- PropertyCondition.cs
- WebRequest.cs
- SizeValueSerializer.cs
- DataGridViewCellLinkedList.cs
- ConstraintStruct.cs
- StyleCollection.cs
- CultureInfoConverter.cs
- WinEventTracker.cs
- TrackingRecord.cs
- UserInitiatedNavigationPermission.cs
- CultureTable.cs
- TableLayoutCellPaintEventArgs.cs
- DoubleAnimationBase.cs
- CacheOutputQuery.cs
- QueryGenerator.cs
- EdmSchemaError.cs
- TdsParserStaticMethods.cs
- KnownColorTable.cs
- QilList.cs
- FileSecurity.cs
- Int16AnimationUsingKeyFrames.cs
- XmlFormatExtensionPointAttribute.cs
- CreateParams.cs
- ManipulationPivot.cs
- CharEnumerator.cs
- SrgsText.cs
- SQLInt64.cs
- UntypedNullExpression.cs
- DateTimeSerializationSection.cs
- ImageField.cs
- TabPage.cs
- SrgsText.cs
- mactripleDES.cs
- MarkerProperties.cs
- HybridDictionary.cs
- RelationshipDetailsRow.cs
- TransportSecurityProtocol.cs
- DesignTimeTemplateParser.cs
- RowToParametersTransformer.cs
- FormsAuthenticationModule.cs
- RuleSetDialog.Designer.cs
- Win32KeyboardDevice.cs
- ApplicationTrust.cs
- StringDictionary.cs
- CellIdBoolean.cs
- CallbackValidatorAttribute.cs
- TextUtf8RawTextWriter.cs
- PropertyGridCommands.cs
- ServiceDescriptionImporter.cs
- CodeMethodInvokeExpression.cs
- BigInt.cs
- ObjectStateEntry.cs
- DataGridSortCommandEventArgs.cs
- DEREncoding.cs
- DefaultTextStoreTextComposition.cs
- ExpressionStringBuilder.cs
- CollectionContainer.cs
- DataReceivedEventArgs.cs
- OutputScope.cs
- XamlTypeMapperSchemaContext.cs
- cookiecollection.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- SimpleTextLine.cs
- WebPartCancelEventArgs.cs
- TemplateBindingExpressionConverter.cs
- ComboBoxAutomationPeer.cs
- Convert.cs
- WebBrowserUriTypeConverter.cs
- TrackPointCollection.cs
- srgsitem.cs
- BinaryFormatterSinks.cs
- CustomMenuItemCollection.cs
- PointHitTestResult.cs
- ErrorRuntimeConfig.cs
- DockProviderWrapper.cs