예제 #1
0
        public async Task Initialize()
        {
            if (_initialized)
            {
                throw new InvalidOperationException("Object is already initialized.");
            }

            NamespaceManager = NamespaceManager.CreateFromConnectionString(_connString);
            MessagingFactory = MessagingFactory.CreateFromConnectionString(_connString);

            // Create topics and queues
            await EnsureTopics();

            if (!_pairConnString.IsNullOrWhiteSpace())
            {
                var pairManager = NamespaceManager.CreateFromConnectionString(_pairConnString);
                var pairFactory = MessagingFactory.CreateFromConnectionString(_pairConnString);

                var pairOpts = new SendAvailabilityPairedNamespaceOptions(pairManager, pairFactory, 10, TimeSpan.FromMinutes(1), true);

                // Look at pairOpts defaults and message factory retry options

                await MessagingFactory.PairNamespaceAsync(pairOpts);

                Paired = true;
            }

            _initialized = true;
        }
        protected void CreatePairedNamespaceManager(string pairedConnectionStringName)
        {
            var pairedConnectionString = CloudConfigurationManager.GetSetting(pairedConnectionStringName);
            var pairedNamespaceManager = NamespaceManager.CreateFromConnectionString(pairedConnectionString);
            var pairedMessagingFactory = MessagingFactory.CreateFromConnectionString(pairedConnectionString);
            var pairedNamespaceOptions = new SendAvailabilityPairedNamespaceOptions(pairedNamespaceManager,
                                                                                    pairedMessagingFactory);

            MessagingFactory.PairNamespaceAsync(pairedNamespaceOptions).Wait();
        }