public static void Begin(OrganizationId organizationId, Guid contentMailboxGuid, bool executeReconcileFolders, Action <Exception> onEndCallback) { ArgumentValidator.ThrowIfNull("organizationId", organizationId); ArgumentValidator.ThrowIfEmpty("contentMailboxGuid", contentMailboxGuid); ArgumentValidator.ThrowIfNull("onEndCallback", onEndCallback); PublicFolderSynchronizer.Tracer.TraceDebug <OrganizationId, Guid, bool>(0L, "PublicFolderSynchronizer.Begin() for organization {0}, mailbox {1}, executeReconcileFolders {2}", organizationId, contentMailboxGuid, executeReconcileFolders); ConfigBase <MRSConfigSchema> .InitializeConfigProvider(new Func <IConfigSchema, IConfigProvider>(ConfigProvider.CreateProvider)); IActivityScope activityScope = ActivityContext.Start(null, ActivityType.System); activityScope.Component = "PublicFolderSynchronizer"; try { PublicFolderSynchronizerContext publicFolderSynchronizerContext = new PublicFolderSynchronizerContext(organizationId, contentMailboxGuid, false, executeReconcileFolders, activityScope.ActivityId); PublicFolderSynchronizer publicFolderSynchronizer = new PublicFolderSynchronizer(publicFolderSynchronizerContext, activityScope, onEndCallback); PublicFolderSynchronizer.Tracer.TraceDebug <int>(0L, "Created PublicFolderSynchronizer={0}", publicFolderSynchronizer.GetHashCode()); publicFolderSynchronizer.Execute(); } finally { ActivityContext.ClearThreadScope(); } }
// Token: 0x06000004 RID: 4 RVA: 0x00002248 File Offset: 0x00000448 protected override void OnStartInternal(string[] args) { try { ConfigBase <MRSConfigSchema> .InitializeConfigProvider(new Func <IConfigSchema, IConfigProvider>(ConfigProvider.CreateProvider)); if (!ConfigBase <MRSConfigSchema> .GetConfig <bool>("IsEnabled")) { MRSService.LogEvent(MRSEventLogConstants.Tuple_ServiceIsDisabled, new object[0]); this.AbortStartup(null); } else { MrsTracer.Service.Debug("Starting Mailbox Replication Service", new object[0]); MRSService.Instance = new MRSService(); this.host = new ServiceHost(typeof(MailboxReplicationService), new Uri[0]); this.proxyHost = new ServiceHost(typeof(MailboxReplicationProxyService), new Uri[0]); if (MailboxReplicationServiceImpl.runningAsService) { base.RequestAdditionalTime((int)(this.host.OpenTimeout + TimeSpan.FromSeconds(10.0)).TotalMilliseconds); } this.host.Open(TimeSpan.FromSeconds(120.0)); this.proxyHost.Open(TimeSpan.FromSeconds(120.0)); MRSService.Instance.StartService(); MrsTracer.Service.Debug("Mailbox Replication Service started successfully", new object[0]); using (Process currentProcess = Process.GetCurrentProcess()) { MRSService.LogEvent(MRSEventLogConstants.Tuple_ServiceStarted, new object[] { VersionInformation.MRS.ProductMajor, VersionInformation.MRS.ProductMinor, VersionInformation.MRS.BuildMajor, VersionInformation.MRS.BuildMinor, currentProcess.Id }); } } } catch (AddressAlreadyInUseException ex) { this.AbortStartup(ex); } catch (ArgumentException ex2) { this.AbortStartup(ex2); } catch (ConfigurationErrorsException ex3) { this.AbortStartup(ex3); } catch (ConfigurationSettingsException ex4) { this.AbortStartup(ex4); } catch (InvalidOperationException ex5) { this.AbortStartup(ex5); } catch (System.TimeoutException ex6) { this.AbortStartup(ex6); } catch (System.ServiceProcess.TimeoutException ex7) { this.AbortStartup(ex7); } catch (CommunicationException ex8) { this.AbortStartup(ex8); } catch (RpcException ex9) { this.AbortStartup(ex9); } }