Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Tools / xws_reg / System / ServiceModel / Install / Configuration / ProtocolsInstallComponent.cs / 1 / ProtocolsInstallComponent.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Install.Configuration { using System; using System.Configuration; using System.Globalization; using System.Text; using System.Web.Configuration; using System.Reflection; using System.Collections.Generic; internal class ProtocolsInstallComponent : ServiceModelInstallComponent { string appDomainHandlerType; ConfigurationLoader configLoader; string displayString; string name; string processHandlerType; ProtocolsInstallComponent(string name, ConfigurationLoader configLoader) { this.name = name; string mapped = null; switch (name) { case ServiceModelInstallStrings.NetTcp: mapped = ServiceModelInstallStrings.Tcp; break; case ServiceModelInstallStrings.NetPipe: mapped = ServiceModelInstallStrings.NamedPipe; break; case ServiceModelInstallStrings.NetMsmq: mapped = ServiceModelInstallStrings.Msmq; break; case ServiceModelInstallStrings.MsmqFormatName: mapped = ServiceModelInstallStrings.MsmqIntegration; break; default: throw new InvalidOperationException(SR.GetString(SR.InvalidProtocol, name)); } this.processHandlerType = ServiceModelInstallStrings.ProcessProtocolHandlerType.Replace(ServiceModelInstallStrings.ProtocolToken, mapped); this.appDomainHandlerType = ServiceModelInstallStrings.AppDomainProtocolHandlerType.Replace(ServiceModelInstallStrings.ProtocolToken, mapped); this.configLoader = configLoader; } internal override string DisplayName { get {return this.displayString; } } protected override string InstallActionMessage { get {return SR.GetString(SR.ProtocolsInstall, this.name, this.configLoader.RootWebConfigurationFilePath); } } internal override string[] InstalledVersions { get { if (null != configLoader.ProtocolsSection) { ProtocolElement element = configLoader.ProtocolsSection.Protocols[name]; if (element != null) { return new string[] { ServiceModelInstallStrings.ProcessHandlerType + ServiceModelInstallStrings.VersionStringSeparator + element.ProcessHandlerType, ServiceModelInstallStrings.AppDomainHandlerType + ServiceModelInstallStrings.VersionStringSeparator + element.AppDomainHandlerType }; } } return new string[0]; } } internal override bool IsInstalled { get { return configLoader.ProtocolsSection != null && configLoader.ProtocolsSection.Protocols[name] != null; } } protected override string ReinstallActionMessage { get {return SR.GetString(SR.ProtocolsReinstall, this.name, this.configLoader.RootWebConfigurationFilePath); } } protected override string UninstallActionMessage { get {return SR.GetString(SR.ProtocolsUninstall, this.name, this.configLoader.RootWebConfigurationFilePath); } } internal static ProtocolsInstallComponent CreateNativeProtocolsInstallComponent(string name) { ProtocolsInstallComponent protocols = new ProtocolsInstallComponent(name, new NativeConfigurationLoader()); protocols.displayString = SR.GetString(SR.ProtocolsName, name); return protocols; } internal static ProtocolsInstallComponent CreateWow64ProtocolsInstallComponent(string name) { if (!InstallHelper.Is64BitMachine() || String.IsNullOrEmpty(InstallHelper.Wow64WebConfigFileName)) { throw new ConfigurationLoaderException(SR.GetString(SR.Wow64NotInstalled)); } ProtocolsInstallComponent protocols = new ProtocolsInstallComponent(name, new Wow64ConfigurationLoader()); protocols.displayString = SR.GetString(SR.ProtocolsNameWow64, name); return protocols; } internal override void Install(OutputLevel outputLevel) { if (!IisHelper.ShouldInstallWas) { throw new WasNotInstalledException(SR.GetString(SR.WasNotInstalled, SR.GetString(SR.ProtocolsName, name))); } if (!this.IsInstalled) { if (null != this.configLoader.ProtocolsSection) { ProtocolElement element = new ProtocolElement(name); element.ProcessHandlerType = processHandlerType; element.AppDomainHandlerType = appDomainHandlerType; element.Validate = false; configLoader.ProtocolsSection.Protocols.Add(element); configLoader.Save(); } else { throw new InvalidOperationException(SR.GetString(SR.ConfigurationSectionNotInstalled, this.configLoader.ProtocolsSectionPath, this.configLoader.RootWebConfigurationFilePath)); } } else { EventLogger.LogWarning(SR.GetString(SR.ProtocolsAlreadyExists, name, configLoader.RootWebConfigurationFilePath), OutputLevel.Verbose == outputLevel); } } internal override void Uninstall(OutputLevel outputLevel) { if (this.IsInstalled) { configLoader.ProtocolsSection.Protocols.Remove(name); configLoader.Save(); } else { EventLogger.LogWarning(SR.GetString(SR.ProtocolsNotInstalled, name, configLoader.RootWebConfigurationFilePath), OutputLevel.Verbose == outputLevel); } } internal override InstallationState VerifyInstall() { InstallationState installState = InstallationState.Unknown; if (this.IsInstalled) { if (null != configLoader.ProtocolsSection) { ProtocolElement element = configLoader.ProtocolsSection.Protocols[name]; if (element != null) { if (!element.Validate && element.ProcessHandlerType.Equals(processHandlerType, StringComparison.OrdinalIgnoreCase) && element.AppDomainHandlerType.Equals(appDomainHandlerType, StringComparison.OrdinalIgnoreCase)) { installState = InstallationState.InstalledDefaults; } else { installState = InstallationState.InstalledCustom; } } } } else { installState = InstallationState.NotInstalled; } return installState; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataServiceEntityAttribute.cs
- DescendantOverDescendantQuery.cs
- Point3DAnimation.cs
- VBCodeProvider.cs
- PartialCachingAttribute.cs
- ListBindingHelper.cs
- CaseInsensitiveHashCodeProvider.cs
- HiddenField.cs
- smtppermission.cs
- NamespaceMapping.cs
- UrlMappingCollection.cs
- RtfControlWordInfo.cs
- DataGridViewCellValidatingEventArgs.cs
- GlyphTypeface.cs
- TextRangeSerialization.cs
- DoubleLink.cs
- PersistStreamTypeWrapper.cs
- CustomAttributeBuilder.cs
- EntityCommand.cs
- FreeFormDesigner.cs
- WindowsRichEditRange.cs
- FacetEnabledSchemaElement.cs
- Schema.cs
- PerfCounterSection.cs
- elementinformation.cs
- PermissionListSet.cs
- HttpWebRequest.cs
- WebColorConverter.cs
- OSFeature.cs
- FileRegion.cs
- SHA512Managed.cs
- AuthorizationRuleCollection.cs
- Configuration.cs
- RuntimeWrappedException.cs
- LocalizationComments.cs
- SmiConnection.cs
- KeySplineConverter.cs
- ConnectionStringSettingsCollection.cs
- JsonClassDataContract.cs
- PocoEntityKeyStrategy.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- XmlDocumentFieldSchema.cs
- DataGridSortCommandEventArgs.cs
- QueryExpr.cs
- DataSourceView.cs
- CircleEase.cs
- Empty.cs
- baseaxisquery.cs
- XMLSyntaxException.cs
- SplitterPanel.cs
- _Semaphore.cs
- DecodeHelper.cs
- BinaryObjectReader.cs
- DeleteMemberBinder.cs
- DbDataRecord.cs
- InputReportEventArgs.cs
- Rectangle.cs
- EncryptedPackage.cs
- PermissionAttributes.cs
- CodeNamespaceImportCollection.cs
- StoreItemCollection.cs
- FlowLayoutSettings.cs
- ImmutableObjectAttribute.cs
- Condition.cs
- ContainerUtilities.cs
- DataGridViewCheckBoxColumn.cs
- WebSysDefaultValueAttribute.cs
- LowerCaseStringConverter.cs
- PathFigureCollection.cs
- Set.cs
- PhysicalOps.cs
- StringBuilder.cs
- CompressEmulationStream.cs
- HttpModulesSection.cs
- SqlDeflator.cs
- SequenceNumber.cs
- Attributes.cs
- ToolTipAutomationPeer.cs
- DbDataSourceEnumerator.cs
- Int16Animation.cs
- WindowsUpDown.cs
- SplitterPanel.cs
- OletxEnlistment.cs
- DBCommandBuilder.cs
- SessionPageStatePersister.cs
- MultipartContentParser.cs
- CompositeFontFamily.cs
- WindowsBrush.cs
- ADRoleFactory.cs
- MsmqOutputSessionChannel.cs
- FileAccessException.cs
- XhtmlTextWriter.cs
- SvcMapFileSerializer.cs
- LinkUtilities.cs
- CodeRemoveEventStatement.cs
- VisualStates.cs
- ReliableInputConnection.cs
- TabControlAutomationPeer.cs
- CodeSubDirectory.cs
- OperationContractGenerationContext.cs