Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Tools / xws_reg / System / ServiceModel / Install / Configuration / TransportationConfigurationTypeInstallComponent.cs / 1 / TransportationConfigurationTypeInstallComponent.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Install.Configuration { using System; using System.ServiceModel; using System.Configuration; using System.Globalization; using System.Text; using System.Web.Configuration; using System.Reflection; using System.Collections.Generic; using System.ServiceModel.Configuration; internal class TransportConfigurationTypeInstallComponent : ServiceModelInstallComponent { ConfigurationLoader configLoader; string displayString; string name; string transportConfigurationType; TransportConfigurationTypeInstallComponent(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.InvalidTransportConfigurationType, name)); } this.transportConfigurationType = ServiceModelInstallStrings.TransportConfigurationType.Replace(ServiceModelInstallStrings.ProtocolToken, mapped); this.configLoader = configLoader; } internal override string DisplayName { get {return this.displayString; } } protected override string InstallActionMessage { get {return SR.GetString(SR.TransportConfigurationInstall, this.name, this.configLoader.RootWebConfigurationFilePath); } } internal override string[] InstalledVersions { get { string[] installedVersions = new string[0]; if (null != configLoader.ServiceHostingEnvironmentSection) { if (configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes.ContainsKey(name)) { TransportConfigurationTypeElement element = configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes[name]; installedVersions = new string[] {SR.GetString(SR.TransportConfigurationInstalledVersion, element.TransportConfigurationType)}; } } return installedVersions; } } internal override bool IsInstalled { get { return configLoader.ServiceHostingEnvironmentSection != null && configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes.ContainsKey(name); } } protected override string ReinstallActionMessage { get {return SR.GetString(SR.TransportConfigurationReinstall, this.name, this.configLoader.RootWebConfigurationFilePath); } } protected override string UninstallActionMessage { get {return SR.GetString(SR.TransportConfigurationUninstall, this.name, this.configLoader.RootWebConfigurationFilePath); } } internal static TransportConfigurationTypeInstallComponent CreateNativeTransportConfigurationTypeInstallComponent(string name) { TransportConfigurationTypeInstallComponent transportConfigurationTypes = new TransportConfigurationTypeInstallComponent(name, new NativeConfigurationLoader()); transportConfigurationTypes.displayString = SR.GetString(SR.TransportConfigurationName, name); return transportConfigurationTypes; } internal static TransportConfigurationTypeInstallComponent CreateWow64TransportConfigurationTypeInstallComponent(string name) { if (!InstallHelper.Is64BitMachine() || String.IsNullOrEmpty(InstallHelper.Wow64WebConfigFileName)) { throw new ConfigurationLoaderException(SR.GetString(SR.Wow64NotInstalled)); } TransportConfigurationTypeInstallComponent transportConfigurationTypes = new TransportConfigurationTypeInstallComponent(name, new Wow64ConfigurationLoader()); transportConfigurationTypes.displayString = SR.GetString(SR.TransportConfigurationNameWow64, name); return transportConfigurationTypes; } internal override void Install(OutputLevel outputLevel) { if (!IisHelper.ShouldInstallWas) { throw new WasNotInstalledException(SR.GetString(SR.WasNotInstalled, SR.GetString(SR.TransportConfigurationName, name))); } if (!this.IsInstalled) { if (null != configLoader.ServiceHostingEnvironmentSection) { TransportConfigurationTypeElement element = new TransportConfigurationTypeElement(name); element.TransportConfigurationType = transportConfigurationType; configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes.Add(element); configLoader.Save(); } else { throw new InvalidOperationException(SR.GetString(SR.ConfigurationSectionNotInstalled, configLoader.ServiceHostingEnvironmentSectionPath, configLoader.RootWebConfigurationFilePath)); } } else { EventLogger.LogWarning(SR.GetString(SR.TransportConfigurationAlreadyExists, name, configLoader.RootWebConfigurationFilePath), OutputLevel.Verbose == outputLevel); } } internal override void Uninstall(OutputLevel outputLevel) { if (this.IsInstalled) { configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes.RemoveAt(name); configLoader.Save(); } else { EventLogger.LogWarning(SR.GetString(SR.TransportConfigurationNotInstalled, name, configLoader.RootWebConfigurationFilePath), OutputLevel.Verbose == outputLevel); } } internal override InstallationState VerifyInstall() { InstallationState installState = InstallationState.Unknown; if (this.IsInstalled) { if (null != configLoader.ServiceHostingEnvironmentSection) { if (configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes.ContainsKey(name)) { TransportConfigurationTypeElement element = configLoader.ServiceHostingEnvironmentSection.TransportConfigurationTypes[name]; if (element.TransportConfigurationType.Equals(transportConfigurationType, 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
- DataGridAutoGeneratingColumnEventArgs.cs
- MaterialCollection.cs
- xmlformatgeneratorstatics.cs
- elementinformation.cs
- BuildProviderCollection.cs
- TextEvent.cs
- MetadataCacheItem.cs
- ServiceNotStartedException.cs
- LayoutEditorPart.cs
- Odbc32.cs
- RangeBaseAutomationPeer.cs
- UxThemeWrapper.cs
- CodeBinaryOperatorExpression.cs
- AnnotationDocumentPaginator.cs
- altserialization.cs
- CacheEntry.cs
- ZipPackage.cs
- EndpointConfigContainer.cs
- CounterSample.cs
- HttpApplicationStateWrapper.cs
- RuntimeWrappedException.cs
- XmlTypeAttribute.cs
- IdentityModelDictionary.cs
- MinimizableAttributeTypeConverter.cs
- EncryptedPackage.cs
- MexHttpsBindingCollectionElement.cs
- SelectionItemPatternIdentifiers.cs
- HttpListenerResponse.cs
- UrlMapping.cs
- DefinitionBase.cs
- XPathNavigatorReader.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- BamlCollectionHolder.cs
- SQLInt32Storage.cs
- XmlSchemaChoice.cs
- WebColorConverter.cs
- peernodestatemanager.cs
- XmlSerializableWriter.cs
- InfoCardPolicy.cs
- SequentialWorkflowRootDesigner.cs
- OletxCommittableTransaction.cs
- PtsCache.cs
- UniformGrid.cs
- EncoderParameters.cs
- OdbcConnectionHandle.cs
- ValidationPropertyAttribute.cs
- WindowInteropHelper.cs
- ControlTemplate.cs
- SmtpTransport.cs
- MSHTMLHostUtil.cs
- AssemblyCollection.cs
- Pens.cs
- DataGridClipboardCellContent.cs
- StringWriter.cs
- DataServiceQueryContinuation.cs
- Boolean.cs
- QilName.cs
- DataRelation.cs
- X509Extension.cs
- OutputWindow.cs
- IndexOutOfRangeException.cs
- TemplateControlCodeDomTreeGenerator.cs
- FrameworkRichTextComposition.cs
- ExpressionBuilderContext.cs
- TraceLog.cs
- IndexedEnumerable.cs
- GroupLabel.cs
- Nullable.cs
- TextTabProperties.cs
- UriTemplateQueryValue.cs
- SettingsPropertyValue.cs
- ValidatorCollection.cs
- ClaimSet.cs
- BatchStream.cs
- ParseHttpDate.cs
- ProfileGroupSettings.cs
- SafeUserTokenHandle.cs
- ParseChildrenAsPropertiesAttribute.cs
- CompiledXpathExpr.cs
- ChannelFactoryBase.cs
- StrokeFIndices.cs
- SafeCoTaskMem.cs
- HtmlHead.cs
- KerberosRequestorSecurityToken.cs
- CodeTypeReferenceExpression.cs
- EntityContainerEntitySetDefiningQuery.cs
- Win32NamedPipes.cs
- ADConnectionHelper.cs
- EnumValAlphaComparer.cs
- ScriptControl.cs
- DataGridViewRowPostPaintEventArgs.cs
- Pair.cs
- CaseKeyBox.ViewModel.cs
- TimeSpanOrInfiniteValidator.cs
- CompatibleComparer.cs
- AppSettingsExpressionBuilder.cs
- ControlParameter.cs
- SamlConstants.cs
- ControlIdConverter.cs
- XmlNamedNodeMap.cs