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
- NamedObject.cs
- TdsValueSetter.cs
- EncryptedXml.cs
- UnsafeMethods.cs
- Config.cs
- SqlCommandSet.cs
- PeerMaintainer.cs
- RuntimeVariablesExpression.cs
- MergeFilterQuery.cs
- RoutingService.cs
- EmptyEnumerator.cs
- coordinatorscratchpad.cs
- X509Utils.cs
- Positioning.cs
- MouseDevice.cs
- Italic.cs
- DbConnectionOptions.cs
- DesignerSelectionListAdapter.cs
- ToolboxBitmapAttribute.cs
- UniqueEventHelper.cs
- VersionConverter.cs
- XmlQualifiedName.cs
- TableRow.cs
- ComponentResourceKey.cs
- SHA1.cs
- DataControlCommands.cs
- RawTextInputReport.cs
- DataTransferEventArgs.cs
- EmptyElement.cs
- TextOnlyOutput.cs
- GridViewDeleteEventArgs.cs
- AutoCompleteStringCollection.cs
- HostedHttpContext.cs
- RNGCryptoServiceProvider.cs
- ListControl.cs
- LocalBuilder.cs
- InputScopeManager.cs
- XPathBuilder.cs
- SafeEventLogWriteHandle.cs
- TrackBar.cs
- HasCopySemanticsAttribute.cs
- DllNotFoundException.cs
- CollectionViewGroup.cs
- SimpleMailWebEventProvider.cs
- AnnouncementSendsAsyncResult.cs
- DisplayInformation.cs
- XhtmlBasicControlAdapter.cs
- ApplicationManager.cs
- SpinWait.cs
- BooleanSwitch.cs
- FontEditor.cs
- PixelFormats.cs
- MenuAdapter.cs
- PageCodeDomTreeGenerator.cs
- SerializerProvider.cs
- MessageContractImporter.cs
- PageSetupDialog.cs
- ClrPerspective.cs
- DataGrid.cs
- CloudCollection.cs
- RuntimeHandles.cs
- WebPartCancelEventArgs.cs
- ResourceSet.cs
- ConfigurationSectionGroup.cs
- SEHException.cs
- DispatcherExceptionFilterEventArgs.cs
- SqlDataSourceEnumerator.cs
- GeneralTransform3D.cs
- Int64AnimationBase.cs
- CachedBitmap.cs
- CharAnimationBase.cs
- MDIClient.cs
- PathData.cs
- CFStream.cs
- Message.cs
- SymmetricAlgorithm.cs
- SafeCryptContextHandle.cs
- IsolationInterop.cs
- ToolStripLabel.cs
- ResizeBehavior.cs
- DesignerHelpers.cs
- XPathNodeIterator.cs
- ChooseAction.cs
- ApplicationContext.cs
- OdbcConnectionPoolProviderInfo.cs
- TemplatePropertyEntry.cs
- ChangesetResponse.cs
- LinkLabel.cs
- DecoderExceptionFallback.cs
- TextBoxBase.cs
- IProvider.cs
- SchemaObjectWriter.cs
- LinearKeyFrames.cs
- UInt16Converter.cs
- GroupBoxDesigner.cs
- UIElement.cs
- EntityClientCacheEntry.cs
- DataGridColumnsPage.cs
- Stack.cs
- TemplatePropertyEntry.cs