public bool InitializeIfNeeded(HostId identity) { if (this.HostId == HostId.NotInitialized) { lock (this.initLock) { if (this.HostId == HostId.NotInitialized) { CommonDiagnosticsLog.Initialize(identity); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), OrganizationId.ForestWideOrgId, null, false); ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 500, "InitializeIfNeeded", "f:\\15.00.1497\\sources\\dev\\infoworker\\src\\common\\MessageTracking\\ServerCache.cs"); Server server = topologyConfigurationSession.FindLocalServer(); if (server == null || string.IsNullOrEmpty(server.Fqdn) || string.IsNullOrEmpty(server.Domain)) { TraceWrapper.SearchLibraryTracer.TraceError <string, string>(this.GetHashCode(), "Failed to get local server, or it is invalid Fqdn={0}, Domain={1}", (server == null) ? "<null>" : server.Fqdn, (server == null) ? "<null>" : server.Domain); return(false); } this.localServer = server; ADSite localSite = topologyConfigurationSession.GetLocalSite(); if (localSite == null) { TraceWrapper.SearchLibraryTracer.TraceError(this.GetHashCode(), "Failed to get local site.", new object[0]); return(false); } this.localServerSiteId = localSite.Id; this.HostId = identity; } } return(true); } return(true); }
// Token: 0x0600000E RID: 14 RVA: 0x000022C0 File Offset: 0x000004C0 public static void Main(string[] args) { CommonDiagnosticsLog.Initialize(HostId.MailboxTransportSubmissionService); MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.StartProcess); int num = Privileges.RemoveAllExcept(new string[] { "SeAuditPrivilege", "SeChangeNotifyPrivilege", "SeCreateGlobalPrivilege" }); if (num != 0) { Environment.Exit(num); } MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.RegisterWatson); ExWatson.Register(); MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.RegisterWatsonAction); ExWatson.RegisterReportAction(new WatsonRegKeyReportAction(MailboxTransportSubmissionService.watsonRegKeyReportActionString), WatsonActionScope.Process); MailboxTransportSubmissionService.runningAsService = !Environment.UserInteractive; bool flag = false; bool flag2 = false; foreach (string text in args) { if (text.StartsWith("-?", StringComparison.Ordinal)) { MailboxTransportSubmissionService.Usage(); Environment.Exit(0); } else if (text.StartsWith("-console")) { flag = true; } else if (text.StartsWith("-wait")) { flag2 = true; } } if (!MailboxTransportSubmissionService.runningAsService) { if (!flag) { MailboxTransportSubmissionService.Usage(); Environment.Exit(0); } Console.WriteLine("Starting {0}, running in console mode.", Assembly.GetExecutingAssembly().GetName().Name); if (flag2) { Console.WriteLine("Press ENTER to continue."); Console.ReadLine(); } } MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.InitializePerformanceCounterInstance); Globals.InitializeSinglePerfCounterInstance(); SettingOverrideSync.Instance.Start(true); MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.LoadLatencyTrackerConfiguration); try { LatencyTracker.Configuration = TransportAppConfig.LatencyTrackerConfig.Load(); } catch (ConfigurationErrorsException) { } MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.LoadTransportAppConfig); string text2; if (!Components.TryLoadTransportAppConfig(out text2)) { MailboxTransportSubmissionEventLogger.LogEvent(MSExchangeSubmissionEventLogConstants.Tuple_SubmissionServiceStartFailure, null, new object[] { text2 }); Environment.Exit(1); } MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.CreateService); MailboxTransportSubmissionService.mailboxTransportSubmissionService = new MailboxTransportSubmissionService(); MailboxTransportSubmissionService.LogStage(MailboxTransportSubmissionService.Stage.RunService); if (!MailboxTransportSubmissionService.runningAsService) { ExServiceBase.RunAsConsole(MailboxTransportSubmissionService.mailboxTransportSubmissionService); return; } ServiceBase.Run(MailboxTransportSubmissionService.mailboxTransportSubmissionService); }