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
- MSAAEventDispatcher.cs
- PointHitTestResult.cs
- QualifiedCellIdBoolean.cs
- SplitterPanelDesigner.cs
- HtmlControl.cs
- TextTreeRootNode.cs
- XmlSchemaObjectCollection.cs
- MetadataUtilsSmi.cs
- _UriTypeConverter.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- ReadOnlyDictionary.cs
- DeferredBinaryDeserializerExtension.cs
- RotateTransform.cs
- SimpleTextLine.cs
- PolicyImporterElement.cs
- OleCmdHelper.cs
- ControlPaint.cs
- SupportsEventValidationAttribute.cs
- Crc32.cs
- InkCanvasAutomationPeer.cs
- TextElementEnumerator.cs
- EventData.cs
- ValidationError.cs
- TextBoxRenderer.cs
- EpmSyndicationContentDeSerializer.cs
- PageThemeBuildProvider.cs
- Section.cs
- Part.cs
- GradientBrush.cs
- CodeSnippetCompileUnit.cs
- _SecureChannel.cs
- XmlSerializerFormatAttribute.cs
- InkCanvasInnerCanvas.cs
- FixedDSBuilder.cs
- MatrixValueSerializer.cs
- ZoneMembershipCondition.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- StorageComplexPropertyMapping.cs
- ResourceDisplayNameAttribute.cs
- FontInfo.cs
- ServiceDescriptions.cs
- TrackingServices.cs
- DataGridViewIntLinkedList.cs
- TextDecorationLocationValidation.cs
- BuildResultCache.cs
- TextInfo.cs
- SafeLocalMemHandle.cs
- Parser.cs
- ProcessHostFactoryHelper.cs
- XsltLibrary.cs
- HtmlLink.cs
- _StreamFramer.cs
- HtmlInputText.cs
- ConnectivityStatus.cs
- PositiveTimeSpanValidator.cs
- ConstraintEnumerator.cs
- ISAPIRuntime.cs
- CapabilitiesAssignment.cs
- Scripts.cs
- CustomAttribute.cs
- ExtensionDataObject.cs
- Point.cs
- SqlClientWrapperSmiStream.cs
- SynchronizedInputHelper.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataGridViewBand.cs
- LocalClientSecuritySettings.cs
- StdValidatorsAndConverters.cs
- MultiDataTrigger.cs
- ConnectionConsumerAttribute.cs
- FlowLayout.cs
- SystemIPGlobalProperties.cs
- EventProxy.cs
- LexicalChunk.cs
- HtmlHistory.cs
- _Events.cs
- WebZone.cs
- ReadOnlyCollection.cs
- StateManagedCollection.cs
- GeneralTransform3DTo2DTo3D.cs
- HierarchicalDataBoundControl.cs
- WinFormsUtils.cs
- RightNameExpirationInfoPair.cs
- DocumentOrderQuery.cs
- _StreamFramer.cs
- WebSysDisplayNameAttribute.cs
- CompilationUnit.cs
- DataGridViewButtonColumn.cs
- UpdateCommandGenerator.cs
- UnmanagedMemoryStreamWrapper.cs
- OdbcConnection.cs
- UserValidatedEventArgs.cs
- NotificationContext.cs
- DefaultEventAttribute.cs
- AdapterDictionary.cs
- AnnotationComponentChooser.cs
- ListViewDesigner.cs
- RectangleHotSpot.cs
- DataTableMappingCollection.cs
- ThaiBuddhistCalendar.cs