public override TransportReceiveInfrastructure ConfigureReceiveInfrastructure() { CheckMachineNameForCompliance.Check(); // The following check avoids creating some sub-queues, if the endpoint sub queue has the capability to exceed the max length limitation for queue format name. foreach (var queue in queueBindings.ReceivingAddresses) { CheckEndpointNameComplianceForMsmq.Check(queue); } return(new TransportReceiveInfrastructure( () => new MessagePump(guarantee => SelectReceiveStrategy(guarantee, msmqSettings.ScopeOptions.TransactionOptions)), () => { if (msmqSettings.ExecuteInstaller) { return new MsmqQueueCreator(msmqSettings.UseTransactionalQueues); } return new NullQueueCreator(); }, () => { foreach (var address in queueBindings.ReceivingAddresses) { QueuePermissions.CheckQueue(address); } return Task.FromResult(StartupCheckResult.Success); })); }
public override TransportSendInfrastructure ConfigureSendInfrastructure() { CheckMachineNameForCompliance.Check(); return(new TransportSendInfrastructure( () => new MsmqMessageDispatcher(msmqSettings), () => { foreach (var address in queueBindings.SendingAddresses) { QueuePermissions.CheckQueue(address); } var auditTTBROverridden = auditMessageExpiration > TimeSpan.Zero; var result = TimeToBeReceivedOverrideChecker.Check(isTransactional, outBoxRunning, auditTTBROverridden); return Task.FromResult(result); })); }