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
- xamlnodes.cs
- StreamWithDictionary.cs
- XmlAttribute.cs
- SqlDataSourceStatusEventArgs.cs
- ContainsSearchOperator.cs
- XhtmlConformanceSection.cs
- ItemsPresenter.cs
- XmlIgnoreAttribute.cs
- AsnEncodedData.cs
- SecurityContextSecurityTokenResolver.cs
- WebContext.cs
- ToolStripComboBox.cs
- SerializationUtilities.cs
- _SecureChannel.cs
- SqlAliasesReferenced.cs
- UIElementAutomationPeer.cs
- RuntimeWrappedException.cs
- SmiSettersStream.cs
- BookmarkInfo.cs
- ScrollViewerAutomationPeer.cs
- HtmlTextArea.cs
- Profiler.cs
- ToolZone.cs
- Activity.cs
- SqlTriggerContext.cs
- BinaryObjectWriter.cs
- HttpModuleActionCollection.cs
- TextEffect.cs
- HandledEventArgs.cs
- VirtualDirectoryMapping.cs
- BeginStoryboard.cs
- TextEditorLists.cs
- Atom10FeedFormatter.cs
- ReflectionTypeLoadException.cs
- StickyNote.cs
- ResourcesBuildProvider.cs
- TreeNodeClickEventArgs.cs
- LinqDataSourceHelper.cs
- PersonalizablePropertyEntry.cs
- MeasureItemEvent.cs
- OleDbReferenceCollection.cs
- XmlSchemaSimpleContentExtension.cs
- MetadataException.cs
- StrongNameMembershipCondition.cs
- ExpressionTextBox.xaml.cs
- PerfService.cs
- HtmlInputImage.cs
- LinearKeyFrames.cs
- HtmlForm.cs
- DateTimeFormatInfo.cs
- Image.cs
- XmlEnumAttribute.cs
- EntitySqlQueryBuilder.cs
- StringBlob.cs
- WebResourceAttribute.cs
- XPathDocumentIterator.cs
- AutoCompleteStringCollection.cs
- SafeFileMappingHandle.cs
- OlePropertyStructs.cs
- TypeUnloadedException.cs
- TextRunCacheImp.cs
- StringHandle.cs
- ObjectComplexPropertyMapping.cs
- GZipStream.cs
- EllipticalNodeOperations.cs
- DataTableMappingCollection.cs
- MultiSelectRootGridEntry.cs
- XmlBindingWorker.cs
- TableRowGroup.cs
- StringUtil.cs
- VirtualDirectoryMappingCollection.cs
- UserPersonalizationStateInfo.cs
- DNS.cs
- LongAverageAggregationOperator.cs
- ScrollItemPatternIdentifiers.cs
- SqlTypeConverter.cs
- BindingListCollectionView.cs
- CustomLineCap.cs
- BaseTemplateBuildProvider.cs
- Utils.cs
- RepeaterCommandEventArgs.cs
- ProcessInfo.cs
- elementinformation.cs
- RijndaelManaged.cs
- SelectingProviderEventArgs.cs
- SecurityRuntime.cs
- Command.cs
- TcpClientSocketManager.cs
- EdmProviderManifest.cs
- Utils.cs
- ClientTargetCollection.cs
- StringValueConverter.cs
- propertytag.cs
- ZipIOBlockManager.cs
- BitmapEffectState.cs
- InternalConfigSettingsFactory.cs
- XmlWriterSettings.cs
- ContentHostHelper.cs
- AuthenticationManager.cs
- FormsAuthenticationCredentials.cs