Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Tools / comsvcutil / WasAdminWrapper.cs / 1305376 / WasAdminWrapper.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace Microsoft.Tools.ServiceModel.ComSvcConfig
{
using System;
using System.ServiceModel.Channels;
using System.Diagnostics;
using System.DirectoryServices;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Runtime.InteropServices;
using System.Security;
using System.ServiceModel;
using System.ServiceModel.Configuration;
using Microsoft.Tools.ServiceModel;
using Microsoft.Tools.ServiceModel.SvcUtil;
internal static class WasAdminWrapper
{
const string webService = "IIS://localhost/w3svc";
const string defaultWebServer = "1";
public static string DefaultWebServer
{
get { return webService + "/" + defaultWebServer; }
}
public static bool IsIISInstalled ()
{
try
{
DirectoryEntry webServiceEntry = new DirectoryEntry(webService);
foreach (DirectoryEntry child in webServiceEntry.Children)
return true;
}
catch (COMException)
{
return false;
}
return true;
}
public static string[] GetWebServerNames()
{
if (!IsIISInstalled ())
return null;
try
{
List webServerNames = new List();
DirectoryEntry webServiceEntry = new DirectoryEntry(webService);
foreach (DirectoryEntry child in webServiceEntry.Children)
{
if (child.SchemaClassName.ToUpperInvariant() == "IISWEBSERVER")
{
webServerNames.Add(webService + "/" + child.Name); // Note, child.Name is a number! the "friendly" name is actually child.Description
}
}
return webServerNames.ToArray();
}
catch (COMException ex)
{
// assume a failure here means that no web servers exist
ToolConsole.WriteWarning (SR.GetString(SR.CannotGetWebServersIgnoringWas,
ex.ErrorCode, ex.Message));
return null;
}
}
public static string[] GetWebDirectoryNames(string webServer)
{
if (!IsIISInstalled ())
return null;
try
{
List webDirectoryNames = new List();
DirectoryEntry webServiceEntry = new DirectoryEntry(webServer);
foreach (DirectoryEntry child in webServiceEntry.Children)
{
if (child.SchemaClassName.ToUpperInvariant () == "IISWEBDIRECTORY" || child.SchemaClassName.ToUpperInvariant() == "IISWEBVIRTUALDIR" )
{
webDirectoryNames.Add(child.Name);
// Must special case the "ROOT" vDir, since most actual vDirs are subchildren of the ROOT vdir of a server.
if (child.Name.ToUpperInvariant() == "ROOT")
{
foreach (DirectoryEntry rootChild in child.Children)
{
if (rootChild.SchemaClassName.ToUpperInvariant() == "IISWEBDIRECTORY" || rootChild.SchemaClassName.ToUpperInvariant() == "IISWEBVIRTUALDIR")
{
webDirectoryNames.Add("ROOT" + "/" + rootChild.Name);
}
}
}
}
}
return webDirectoryNames.ToArray();
}
catch (COMException ex)
{
// assume a failure here means that no web directory exist
ToolConsole.WriteWarning (SR.GetString(SR.CannotGetWebDirectoryForServer,
webServer, ex.ErrorCode, ex.Message));
return null;
}
}
public static bool GetWebDirectoryPath(string webServer, string webDirectory, out string webDirectoryPath)
{
webDirectoryPath = null;
if (!IsIISInstalled ())
return false;
if (!webDirectory.ToUpperInvariant().StartsWith("ROOT", StringComparison.Ordinal))
webDirectory = "root/" + webDirectory;
string [] webDirectories = GetWebDirectoryNames (webServer );
if (webDirectories == null)
return false;
bool found = false;
foreach (string webDirectoryName in webDirectories )
if (webDirectoryName.ToUpperInvariant () == webDirectory.ToUpperInvariant())
{
found = true;
break;
}
if (!found ) return false;
DirectoryEntry webDirectoryEntry = new DirectoryEntry(webServer + "/" + webDirectory);
try
{
if (webDirectoryEntry.Properties.Contains("Path"))
{
webDirectoryPath = (string)webDirectoryEntry.Properties["Path"].Value;
return true;
}
else
{
return false;
}
}
catch (COMException ex)
{
// assume a failure here means the dir does not exist
ToolConsole.WriteWarning (SR.GetString(SR.CannotGetWebDirectoryPathOnWebDirOfWebServIgnoring,
webServer, webDirectory, ex.ErrorCode, ex.Message));
return false;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace Microsoft.Tools.ServiceModel.ComSvcConfig
{
using System;
using System.ServiceModel.Channels;
using System.Diagnostics;
using System.DirectoryServices;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Runtime.InteropServices;
using System.Security;
using System.ServiceModel;
using System.ServiceModel.Configuration;
using Microsoft.Tools.ServiceModel;
using Microsoft.Tools.ServiceModel.SvcUtil;
internal static class WasAdminWrapper
{
const string webService = "IIS://localhost/w3svc";
const string defaultWebServer = "1";
public static string DefaultWebServer
{
get { return webService + "/" + defaultWebServer; }
}
public static bool IsIISInstalled ()
{
try
{
DirectoryEntry webServiceEntry = new DirectoryEntry(webService);
foreach (DirectoryEntry child in webServiceEntry.Children)
return true;
}
catch (COMException)
{
return false;
}
return true;
}
public static string[] GetWebServerNames()
{
if (!IsIISInstalled ())
return null;
try
{
List webServerNames = new List();
DirectoryEntry webServiceEntry = new DirectoryEntry(webService);
foreach (DirectoryEntry child in webServiceEntry.Children)
{
if (child.SchemaClassName.ToUpperInvariant() == "IISWEBSERVER")
{
webServerNames.Add(webService + "/" + child.Name); // Note, child.Name is a number! the "friendly" name is actually child.Description
}
}
return webServerNames.ToArray();
}
catch (COMException ex)
{
// assume a failure here means that no web servers exist
ToolConsole.WriteWarning (SR.GetString(SR.CannotGetWebServersIgnoringWas,
ex.ErrorCode, ex.Message));
return null;
}
}
public static string[] GetWebDirectoryNames(string webServer)
{
if (!IsIISInstalled ())
return null;
try
{
List webDirectoryNames = new List();
DirectoryEntry webServiceEntry = new DirectoryEntry(webServer);
foreach (DirectoryEntry child in webServiceEntry.Children)
{
if (child.SchemaClassName.ToUpperInvariant () == "IISWEBDIRECTORY" || child.SchemaClassName.ToUpperInvariant() == "IISWEBVIRTUALDIR" )
{
webDirectoryNames.Add(child.Name);
// Must special case the "ROOT" vDir, since most actual vDirs are subchildren of the ROOT vdir of a server.
if (child.Name.ToUpperInvariant() == "ROOT")
{
foreach (DirectoryEntry rootChild in child.Children)
{
if (rootChild.SchemaClassName.ToUpperInvariant() == "IISWEBDIRECTORY" || rootChild.SchemaClassName.ToUpperInvariant() == "IISWEBVIRTUALDIR")
{
webDirectoryNames.Add("ROOT" + "/" + rootChild.Name);
}
}
}
}
}
return webDirectoryNames.ToArray();
}
catch (COMException ex)
{
// assume a failure here means that no web directory exist
ToolConsole.WriteWarning (SR.GetString(SR.CannotGetWebDirectoryForServer,
webServer, ex.ErrorCode, ex.Message));
return null;
}
}
public static bool GetWebDirectoryPath(string webServer, string webDirectory, out string webDirectoryPath)
{
webDirectoryPath = null;
if (!IsIISInstalled ())
return false;
if (!webDirectory.ToUpperInvariant().StartsWith("ROOT", StringComparison.Ordinal))
webDirectory = "root/" + webDirectory;
string [] webDirectories = GetWebDirectoryNames (webServer );
if (webDirectories == null)
return false;
bool found = false;
foreach (string webDirectoryName in webDirectories )
if (webDirectoryName.ToUpperInvariant () == webDirectory.ToUpperInvariant())
{
found = true;
break;
}
if (!found ) return false;
DirectoryEntry webDirectoryEntry = new DirectoryEntry(webServer + "/" + webDirectory);
try
{
if (webDirectoryEntry.Properties.Contains("Path"))
{
webDirectoryPath = (string)webDirectoryEntry.Properties["Path"].Value;
return true;
}
else
{
return false;
}
}
catch (COMException ex)
{
// assume a failure here means the dir does not exist
ToolConsole.WriteWarning (SR.GetString(SR.CannotGetWebDirectoryPathOnWebDirOfWebServIgnoring,
webServer, webDirectory, ex.ErrorCode, ex.Message));
return false;
}
}
}
}
// 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
- GacUtil.cs
- InfoCardAsymmetricCrypto.cs
- QuadraticBezierSegment.cs
- ConfigurationManagerInternalFactory.cs
- PolyBezierSegment.cs
- TaiwanLunisolarCalendar.cs
- StreamUpgradeInitiator.cs
- ellipse.cs
- PageTheme.cs
- WebPartCancelEventArgs.cs
- CollectionConverter.cs
- TabControl.cs
- ArrayConverter.cs
- CompareValidator.cs
- RelAssertionDirectKeyIdentifierClause.cs
- Typography.cs
- ValueCollectionParameterReader.cs
- XamlPathDataSerializer.cs
- Rss20FeedFormatter.cs
- InternalDuplexBindingElement.cs
- Exceptions.cs
- VisualState.cs
- ValidatorUtils.cs
- XmlWrappingReader.cs
- TextDecorationUnitValidation.cs
- DashStyle.cs
- ChtmlPageAdapter.cs
- EUCJPEncoding.cs
- X509UI.cs
- MarshalByRefObject.cs
- ProcessStartInfo.cs
- complextypematerializer.cs
- FlowLayoutPanel.cs
- WebCategoryAttribute.cs
- DataGridViewRowEventArgs.cs
- AliasedExpr.cs
- WindowHelperService.cs
- PathGradientBrush.cs
- ProfileProvider.cs
- JsonWriterDelegator.cs
- TypeNameParser.cs
- ButtonField.cs
- CommandID.cs
- MtomMessageEncodingElement.cs
- Helpers.cs
- DataKey.cs
- SpecialFolderEnumConverter.cs
- ParserHooks.cs
- CustomGrammar.cs
- MonthChangedEventArgs.cs
- XamlParser.cs
- HostProtectionException.cs
- OperatingSystem.cs
- CodeExporter.cs
- PrimitiveSchema.cs
- ApplicationProxyInternal.cs
- SqlClientPermission.cs
- PriorityQueue.cs
- DataObjectSettingDataEventArgs.cs
- SoapCommonClasses.cs
- ExternalCalls.cs
- ReaderOutput.cs
- ApplyTemplatesAction.cs
- Path.cs
- SharedPersonalizationStateInfo.cs
- CompModSwitches.cs
- XmlAttributeProperties.cs
- ProcessModuleCollection.cs
- SizeIndependentAnimationStorage.cs
- SuppressMergeCheckAttribute.cs
- ArglessEventHandlerProxy.cs
- TabControlDesigner.cs
- StylusEventArgs.cs
- QueryStringConverter.cs
- CodeLinePragma.cs
- Transform3DCollection.cs
- HtmlWindowCollection.cs
- Int64.cs
- _NegoState.cs
- RenderOptions.cs
- Manipulation.cs
- Point4D.cs
- GraphicsContext.cs
- CqlParserHelpers.cs
- ClientConfigPaths.cs
- XmlAtomicValue.cs
- NativeMethods.cs
- StickyNoteHelper.cs
- FileUtil.cs
- ControlUtil.cs
- UriTemplateTrieLocation.cs
- StylusButtonCollection.cs
- WorkflowTransactionOptions.cs
- EmbeddedMailObject.cs
- DocComment.cs
- CompleteWizardStep.cs
- DataServiceQueryException.cs
- WindowsStreamSecurityBindingElement.cs
- COAUTHINFO.cs
- iisPickupDirectory.cs