//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- namespace System.ServiceModel.Activation { using System.Collections.Generic; using System.ServiceModel.Channels; using System.ServiceModel; using System.Diagnostics; using System.Web.Hosting; class MsmqHostedTransportConfiguration : HostedTransportConfigurationBase { MsmqHostedTransportManager uniqueManager; public MsmqHostedTransportConfiguration() : this(MsmqUri.NetMsmqAddressTranslator) { } protected MsmqHostedTransportConfiguration(MsmqUri.IAddressTranslator addressing) : base(addressing.Scheme) { AspNetPartialTrustHelpers.FailIfInPartialTrustOutsideAspNet(); string[] bindings = HostedTransportConfigurationManager.MetabaseSettings.GetBindings(addressing.Scheme); this.uniqueManager = new MsmqHostedTransportManager(bindings, addressing); for (int i = 0; i < bindings.Length; i++) { Uri address = addressing.CreateUri(bindings[i], HostingEnvironment.ApplicationVirtualPath, false); this.ListenAddresses.Add(new BaseUriWithWildcard(address, TransportDefaults.HostNameComparisonMode)); UniqueTransportManagerRegistration registration = new UniqueTransportManagerRegistration(uniqueManager, address, TransportDefaults.HostNameComparisonMode); Msmq.StaticTransportManagerTable.RegisterUri(address, TransportDefaults.HostNameComparisonMode, registration); } this.uniqueManager.Start(null); } public override Uri[] GetBaseAddresses(string virtualPath) { return this.uniqueManager.GetBaseAddresses(virtualPath); } internal MsmqHostedTransportManager TransportManager { get { return uniqueManager; } } } sealed class MsmqIntegrationHostedTransportConfiguration : MsmqHostedTransportConfiguration { public MsmqIntegrationHostedTransportConfiguration() : base(MsmqUri.FormatNameAddressTranslator) { } } }