public string UriToFormatName(Uri uri)
            {
                if (null == uri)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("uri"));
                }
                if (uri.Scheme != this.Scheme)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MsmqInvalidScheme), "uri"));
                }
                if (String.IsNullOrEmpty(uri.Host))
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.MsmqWrongUri));
                }

                StringBuilder builder = new StringBuilder();

                builder.Append("DIRECT=");
                builder.Append(this.DirectScheme);
                builder.Append(uri.Host);
                if (-1 != uri.Port)
                {
                    builder.Append(":");
                    builder.Append(uri.Port.ToString(CultureInfo.InvariantCulture));
                }

                string relativePath = Uri.UnescapeDataString(uri.PathAndQuery);

                builder.Append(msmqPart);
                MsmqUri.AppendQueueName(builder, relativePath, "/");

                return(builder.ToString());
            }
Example #2
0
            public virtual string UriToFormatName(Uri uri)
            {
                if (null == uri)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("uri"));
                }
                if (uri.Scheme != this.Scheme)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.ServiceModel.SR.GetString("MsmqInvalidScheme"), "uri"));
                }
                if (string.IsNullOrEmpty(uri.Host))
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(System.ServiceModel.SR.GetString("MsmqWrongUri"));
                }
                if (-1 != uri.Port)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(System.ServiceModel.SR.GetString("MsmqUnexpectedPort"));
                }
                uri = this.PostVerify(uri);
                StringBuilder builder = new StringBuilder();

                if (string.Compare(uri.Host, "localhost", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    builder.Append(".");
                }
                else
                {
                    builder.Append(uri.Host);
                }
                builder.Append(@"\");
                MsmqUri.AppendQueueName(builder, Uri.UnescapeDataString(uri.PathAndQuery), @"\");
                return(builder.ToString());
            }
 public MsmqBindingFilter(string path, MsmqUri.IAddressTranslator addressing)
 {
     this.prefix = path;
     this.addressing = addressing;
     if ((this.prefix.Length > 0) && (this.prefix[0] == '/'))
     {
         this.prefix = this.prefix.Substring(1);
     }
     if ((this.prefix.Length > 0) && (this.prefix[this.prefix.Length - 1] != '/'))
     {
         this.prefix = this.prefix + '/';
     }
 }
 protected MsmqHostedTransportConfiguration(MsmqUri.IAddressTranslator addressing) : base(addressing.Scheme)
 {
     string[] bindings = HostedTransportConfigurationManager.MetabaseSettings.GetBindings(addressing.Scheme);
     this.uniqueManager = new MsmqHostedTransportManager(bindings, addressing);
     for (int i = 0; i < bindings.Length; i++)
     {
         Uri baseAddress = addressing.CreateUri(bindings[i], HostingEnvironment.ApplicationVirtualPath, false);
         base.ListenAddresses.Add(new BaseUriWithWildcard(baseAddress, HostNameComparisonMode.Exact));
         UniqueTransportManagerRegistration item = new UniqueTransportManagerRegistration(this.uniqueManager, baseAddress, HostNameComparisonMode.Exact);
         Msmq.StaticTransportManagerTable.RegisterUri(baseAddress, HostNameComparisonMode.Exact, item);
     }
     this.uniqueManager.Start(null);
 }
 internal MsmqReceiveParameters(MsmqBindingElementBase bindingElement, MsmqUri.IAddressTranslator addressTranslator)
 {
     this.addressTranslator = addressTranslator;
     this.durable = bindingElement.Durable;
     this.exactlyOnce = bindingElement.ExactlyOnce;
     this.maxRetryCycles = bindingElement.MaxRetryCycles;
     this.receiveErrorHandling = bindingElement.ReceiveErrorHandling;
     this.receiveRetryCount = bindingElement.ReceiveRetryCount;
     this.retryCycleDelay = bindingElement.RetryCycleDelay;
     this.transportSecurity = new MsmqTransportSecurity(bindingElement.MsmqTransportSecurity);
     this.useMsmqTracing = bindingElement.UseMsmqTracing;
     this.useSourceJournal = bindingElement.UseSourceJournal;
     this.receiveContextSettings = new MsmqReceiveContextSettings(bindingElement.ReceiveContextSettings);
 }
        public MsmqHostedTransportManager(string[] hosts, MsmqUri.IAddressTranslator addressing)
        {
            AspNetPartialTrustHelpers.FailIfInPartialTrustOutsideAspNet();

            this.hosts = hosts;
            this.bindingMonitors = new List<MsmqBindingMonitor>();
            this.addressing = addressing;
            this.filter = new HostedBindingFilter(HostingEnvironment.ApplicationVirtualPath, addressing);

            foreach (string host in this.hosts)
            {
                MsmqBindingMonitor monitor = new MsmqBindingMonitor(host, TimeSpan.FromMinutes(5), true);
                monitor.AddFilter(this.filter);
                monitor.Open();
                this.bindingMonitors.Add(monitor);
            }
        }
            public string UriToFormatName(Uri uri)
            {
                if (null == uri)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("uri"));
                }
                if (uri.Scheme != this.Scheme)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MsmqInvalidScheme), "uri"));
                }
                if (String.IsNullOrEmpty(uri.Host))
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.MsmqWrongUri));
                }
                if (-1 != uri.Port)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.MsmqUnexpectedPort));
                }

                StringBuilder builder = new StringBuilder();

                builder.Append("DIRECT=");
                if (0 == String.Compare(uri.Host, "localhost", StringComparison.OrdinalIgnoreCase))
                {
                    builder.Append("OS:.");
                }
                else
                {
                    IPAddress address = null;
                    if (IPAddress.TryParse(uri.Host, out address))
                    {
                        builder.Append("TCP:");
                    }
                    else
                    {
                        builder.Append("OS:");
                    }

                    builder.Append(uri.Host);
                }
                builder.Append("\\");
                MsmqUri.AppendQueueName(builder, Uri.UnescapeDataString(uri.PathAndQuery), "\\");

                return(builder.ToString());
            }
        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 HostedBindingFilter(string path, MsmqUri.IAddressTranslator addressing)
     : base(path, addressing)
 {
     AspNetPartialTrustHelpers.FailIfInPartialTrustOutsideAspNet();
 }
 internal MsmqTransportReceiveParameters(MsmqTransportBindingElement bindingElement, MsmqUri.IAddressTranslator addressTranslator) : base(bindingElement, addressTranslator)
 {
     this.maxPoolSize = bindingElement.MaxPoolSize;
     this.useActiveDirectory = bindingElement.UseActiveDirectory;
     this.queueTransferProtocol = bindingElement.QueueTransferProtocol;
 }