示例#1
0
        // Token: 0x0600025A RID: 602 RVA: 0x0000FCC4 File Offset: 0x0000DEC4
        private void Application_Start(object sender, EventArgs e)
        {
            Globals.InitializeMultiPerfCounterInstance("AutoDisc");
            Microsoft.Exchange.Diagnostics.Components.Autodiscover.ExTraceGlobals.FrameworkTracer.TraceDebug <string>((long)this.GetHashCode(), "[Application_Start()] Privileges.RemoveAllExcept(,,\"{0}\");", "MSExchangeAutodiscoverAppPool");
            string[] privilegesToKeep = new string[]
            {
                "SeAuditPrivilege",
                "SeChangeNotifyPrivilege",
                "SeCreateGlobalPrivilege"
            };
            int num = Privileges.RemoveAllExcept(privilegesToKeep, "MSExchangeAutodiscoverAppPool");

            if (num != 0)
            {
                Microsoft.Exchange.Diagnostics.Components.Autodiscover.ExTraceGlobals.FrameworkTracer.TraceError <TimeSpan, int>((long)this.GetHashCode(), "[Application_Start()] 'Failed to remove privileges, exiting. Time=\"{0}\",win32Error=\"{1}\"'", ExDateTime.Now.TimeOfDay, num);
                Environment.Exit(num);
            }
            PerformanceCounters.Initialize();
            ExchangeDiagnosticsHelper.RegisterDiagnosticsComponents();
            Microsoft.Exchange.Diagnostics.Components.Autodiscover.ExTraceGlobals.FrameworkTracer.TraceDebug((long)this.GetHashCode(), "[Application_Start()] 'ApplicationStarted'");
            Common.EventLog.LogEvent(AutodiscoverEventLogConstants.Tuple_InfoWebApplicationStart, Common.PeriodicKey, new object[0]);
            string text = ExEnvironment.IsTest ? "E12" : "E12IIS";

            ExWatson.Register(text);
            Microsoft.Exchange.Diagnostics.Components.Autodiscover.ExTraceGlobals.FaultInjectionTracer.RegisterExceptionInjectionCallback(new ExceptionInjectionCallback(FaultInjection.Callback));
            Microsoft.Exchange.Diagnostics.Components.Autodiscover.ExTraceGlobals.FrameworkTracer.TraceDebug <string, string>((long)this.GetHashCode(), "[Application_Start()] ExWatson.Register(\"{0}\");AppName=\"{1}\";", text, ExWatson.AppName);
        }
        private static void Main(string[] args)
        {
            new LocalizedString("Workaround for bug # 72378");
            int num = Privileges.RemoveAllExcept(AssistantsService.requiredPrivileges);

            if (num != 0)
            {
                Environment.Exit(num);
            }
            ExWatson.Register();
            ExWatson.RegisterReportAction(new WatsonRegKeyReportAction("HKLM\\SYSTEM\\CurrentControlSet\\Services\\MSExchangeIS\\ImagePath"), WatsonActionScope.Process);
            AssistantsService.ReadRegParams();
            Globals.InitializeMultiPerfCounterInstance("MSExchMbxAsst");
            ResourceHealthMonitorManager.Initialize(ResourceHealthComponent.Assistants);
            AssistantsService service = new AssistantsService();

            if (Environment.UserInteractive && args.Length >= 1 && string.Compare(args[0], "-crash", true) == 0)
            {
                throw new Exception("Startup crash to test ExWatson stuff");
            }
            if (Environment.UserInteractive && args.Length >= 1 && string.Compare(args[0], "-console", true) == 0)
            {
                AssistantsService.TracerPfd.TracePfd <int>(3L, "PFD IWS {0} Starting the Mailbox Assistants Service in Console Mode", 28055);
                ExServiceBase.RunAsConsole(service);
                return;
            }
            ServiceBase.Run(service);
        }
 public void Init(HttpApplication application)
 {
     ExWatson.Register("E12");
     application.Error      += ErrorHandlingModule.Application_Error;
     application.EndRequest += ErrorHandlingModule.Application_EndRequest;
     application.PostAcquireRequestState += ErrorHandlingModule.Application_PostAcquireRequestState;
 }
示例#4
0
 protected override void ExecuteApplicationSpecificStart()
 {
     ExWatson.Register("E12IIS");
     OwaEventRegistry.RegisterHandler(typeof(ProxyEventHandler));
     CalendarViewEventHandler.Register();
     DatePickerEventHandler.Register();
     PrintCalendarEventHandler.Register();
 }
 // Token: 0x0600000D RID: 13 RVA: 0x000023F8 File Offset: 0x000005F8
 internal static void Main(string[] args)
 {
     ExWatson.Register();
     using (Process currentProcess = Process.GetCurrentProcess())
     {
         MonitoringWorker.processId = currentProcess.Id;
     }
     MonitoringWorker.worker.Run(args);
 }
        // Token: 0x06000011 RID: 17 RVA: 0x000022AC File Offset: 0x000004AC
        public static void Main(string[] args)
        {
            ExWatson.Register();
            int num = DagMgmtService.MainInternal(args);

            if (num != 0)
            {
                DagMgmtService.Tracer.TraceError <int>(0L, "Exiting process with error code {0}", num);
                Environment.Exit(num);
            }
        }
        // Token: 0x06000010 RID: 16 RVA: 0x00002290 File Offset: 0x00000490
        public static void Main(string[] args)
        {
            bool flag  = false;
            bool flag2 = false;

            foreach (string text in args)
            {
                if (text.StartsWith("-?", StringComparison.Ordinal))
                {
                    FrontEndTransportService.Usage();
                    Environment.Exit(0);
                }
                else if (text.StartsWith("-console"))
                {
                    flag = true;
                }
                else if (text.StartsWith("-wait"))
                {
                    flag2 = true;
                }
            }
            FrontEndTransportService.runningAsService = !Environment.UserInteractive;
            if (!FrontEndTransportService.runningAsService)
            {
                if (!flag)
                {
                    FrontEndTransportService.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();
                }
            }
            Globals.InitializeSinglePerfCounterInstance();
            ExWatson.Register();
            string text2;

            if (!Components.TryLoadTransportAppConfig(out text2))
            {
                Environment.Exit(1);
            }
            SettingOverrideSync.Instance.Start(true);
            FrontEndTransportService.instance = new FrontEndTransportService();
            if (FrontEndTransportService.runningAsService)
            {
                ServiceBase.Run(FrontEndTransportService.instance);
                return;
            }
            ExServiceBase.RunAsConsole(FrontEndTransportService.instance);
        }
        // Token: 0x06000003 RID: 3 RVA: 0x00002160 File Offset: 0x00000360
        public static void Main(string[] args)
        {
            ExWatson.Register();
            Globals.InitializeMultiPerfCounterInstance("MSExchMbxRepl");
            MailboxReplicationServiceImpl.runningAsService = !Environment.UserInteractive;
            bool flag  = false;
            bool flag2 = false;

            foreach (string text in args)
            {
                if (text.StartsWith("-?", StringComparison.Ordinal))
                {
                    MailboxReplicationServiceImpl.Usage();
                    Environment.Exit(0);
                }
                else if (text.StartsWith("-console"))
                {
                    flag = true;
                }
                else if (text.StartsWith("-wait"))
                {
                    flag2 = true;
                }
            }
            if (!MailboxReplicationServiceImpl.runningAsService)
            {
                if (!flag)
                {
                    MailboxReplicationServiceImpl.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();
                }
            }
            MailboxReplicationServiceImpl.instance = new MailboxReplicationServiceImpl();
            if (!MailboxReplicationServiceImpl.runningAsService)
            {
                ExServiceBase.RunAsConsole(MailboxReplicationServiceImpl.instance);
                return;
            }
            ServiceBase.Run(MailboxReplicationServiceImpl.instance);
        }
示例#9
0
        // Token: 0x0600002F RID: 47 RVA: 0x00002CA0 File Offset: 0x00000EA0
        public static void Main(string[] args)
        {
            ThrottlingService.StartStopBreadcrumbs.Drop("Execution began", new object[0]);
            int num = Privileges.RemoveAllExcept(new string[]
            {
                "SeAuditPrivilege",
                "SeChangeNotifyPrivilege",
                "SeCreateGlobalPrivilege"
            });

            if (num != 0)
            {
                ThrottlingService.StartStopBreadcrumbs.Drop("Failed to remove excessive privileges; Win32 error: {0}", new object[]
                {
                    num
                });
                ThrottlingService.tracer.TraceError <int>(0L, "Failed to remove excessive privileges; Win32 error: {0}", num);
                ThrottlingService.eventLogger.LogEvent(ThrottlingServiceEventLogConstants.Tuple_RemovePrivilegesFailure, null, new object[]
                {
                    num
                });
                Environment.Exit(num);
            }
            ExWatson.Register();
            ThrottlingService.runningAsService = !Environment.UserInteractive;
            Globals.InitializeSinglePerfCounterInstance();
            bool flag  = false;
            bool flag2 = false;

            foreach (string text in args)
            {
                if (text.StartsWith("-?", StringComparison.Ordinal))
                {
                    ThrottlingService.Usage();
                    Environment.Exit(0);
                }
                else if (text.StartsWith("-console"))
                {
                    flag = true;
                }
                else if (text.StartsWith("-wait"))
                {
                    flag2 = true;
                }
            }
            ThrottlingService.StartStopBreadcrumbs.Drop("runningAsService={0}", new object[]
            {
                ThrottlingService.runningAsService
            });
            if (!ThrottlingService.runningAsService)
            {
                if (!flag)
                {
                    ThrottlingService.Usage();
                    ThrottlingService.StartStopBreadcrumbs.Drop("Usage shown", new object[0]);
                    Environment.Exit(0);
                }
                Console.WriteLine("Starting {0}, running in console mode.", Assembly.GetExecutingAssembly().GetName().Name);
                if (flag2)
                {
                    ThrottlingService.StartStopBreadcrumbs.Drop("Waiting for user input to proceed with initialization", new object[0]);
                    Console.WriteLine("Press ENTER to continue.");
                    Console.ReadLine();
                }
            }
            ThrottlingService.instance = new ThrottlingService();
            if (!ThrottlingService.runningAsService)
            {
                ExServiceBase.RunAsConsole(ThrottlingService.instance);
            }
            else
            {
                ServiceBase.Run(ThrottlingService.instance);
            }
            ThrottlingService.StartStopBreadcrumbs.Drop("Execution ended", new object[0]);
        }
示例#10
0
 internal static void InitializeWatsonReporting()
 {
     ExTraceGlobals.ExceptionTracer.TraceDebug <bool, bool>(0L, "sendWatsonReports: {0} filterExceptionsFromWatsonReporting: {1}", Diagnostics.SendWatsonReports.Value, Diagnostics.FilterExceptionsFromWatsonReport.Value);
     ExWatson.Register(ExEnvironment.IsTest ? "E12" : "E12IIS");
 }
        // Token: 0x06000005 RID: 5 RVA: 0x00002158 File Offset: 0x00000358
        internal static void Main(string[] args)
        {
            List <string> list = new List <string>();

            list.Add("SeAuditPrivilege");
            list.Add("SeChangeNotifyPrivilege");
            list.Add("SeCreateGlobalPrivilege");
            list.Add("SeImpersonatePrivilege");
            bool isSystem;

            using (WindowsIdentity current = WindowsIdentity.GetCurrent())
            {
                isSystem = current.IsSystem;
            }
            if (isSystem)
            {
                list.Add("SeIncreaseQuotaPrivilege");
                list.Add("SeAssignPrimaryTokenPrivilege");
            }
            int num = Privileges.RemoveAllExcept(list.ToArray());

            if (num != 0)
            {
                Environment.Exit(num);
            }
            Globals.InitializeSinglePerfCounterInstance();
            ExWatson.Register();
            bool flag  = !Environment.UserInteractive;
            bool flag2 = false;
            bool flag3 = false;

            foreach (string text in args)
            {
                if (text.StartsWith("-?", StringComparison.OrdinalIgnoreCase))
                {
                    TransportService.Usage();
                    Environment.Exit(0);
                }
                else if (text.StartsWith("-console", StringComparison.OrdinalIgnoreCase))
                {
                    flag2 = true;
                }
                else if (text.StartsWith("-wait", StringComparison.OrdinalIgnoreCase))
                {
                    flag3 = true;
                }
            }
            if (!flag)
            {
                if (!flag2)
                {
                    TransportService.Usage();
                    Environment.Exit(0);
                }
                Console.WriteLine("Starting {0}, running in console mode.", Assembly.GetExecutingAssembly().GetName().Name);
                if (flag3)
                {
                    Console.WriteLine("Press ENTER to continue.");
                    Console.ReadLine();
                }
            }
            SettingOverrideSync.Instance.Start(true);
            if (!VariantConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).Transport.ADExceptionHandling.Enabled)
            {
                TransportService.adConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 324, "Main", "f:\\15.00.1497\\sources\\dev\\Transport\\src\\TransportService\\TransportService.cs");
            }
            else
            {
                ADOperationResult adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate()
                {
                    TransportService.adConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 334, "Main", "f:\\15.00.1497\\sources\\dev\\Transport\\src\\TransportService\\TransportService.cs");
                }, 0);
                if (!adoperationResult.Succeeded)
                {
                    ExTraceGlobals.ServiceTracer.TraceError <Exception>(0L, "Error when getting AD configuration session: {0}", adoperationResult.Exception);
                    TransportService.logger.LogEvent(TransportEventLogConstants.Tuple_MSExchangeTransportInitializationFailure, null, new object[]
                    {
                        adoperationResult.Exception.ToString()
                    });
                    Environment.Exit(1);
                }
            }
            TransportService.transportService = new TransportService(flag);
            if (!TransportService.transportService.Initialize())
            {
                ExTraceGlobals.ServiceTracer.TraceError(0L, "Failed to initialize the service. Exiting.");
                ProcessManagerService.StopService();
            }
            if (!flag)
            {
                TransportService.transportService.OnStartInternal(args);
                bool flag4 = false;
                while (!flag4)
                {
                    Console.WriteLine("Enter 'q' to shutdown.");
                    string text2 = Console.ReadLine();
                    if (string.IsNullOrEmpty(text2))
                    {
                        break;
                    }
                    switch (text2[0])
                    {
                    case 'q':
                        flag4 = true;
                        break;

                    case 'r':
                        TransportService.transportService.OnCustomCommandInternal(200);
                        break;

                    case 'u':
                        TransportService.transportService.OnCustomCommandInternal(201);
                        break;
                    }
                }
                Console.WriteLine("Shutting down ...");
                TransportService.transportService.OnStopInternal();
                Console.WriteLine("Done.");
                return;
            }
            ServiceBase.Run(TransportService.transportService);
        }
        // Token: 0x06000007 RID: 7 RVA: 0x0000289C File Offset: 0x00000A9C
        public static void Main(string[] args)
        {
            int num = Privileges.RemoveAllExcept(new string[]
            {
                "SeAuditPrivilege",
                "SeChangeNotifyPrivilege",
                "SeCreateGlobalPrivilege"
            });

            if (num != 0)
            {
                Environment.Exit(num);
            }
            ExWatson.Register();
            AntispamUpdateSvc.runningAsService = !Environment.UserInteractive;
            bool flag = false;
            int  i    = 0;

            while (i < args.Length)
            {
                string text = args[i];
                string a;
                if ((a = text.Trim()) == null)
                {
                    goto IL_BD;
                }
                if (!(a == "-?"))
                {
                    if (!(a == "-console"))
                    {
                        if (!(a == "-wait"))
                        {
                            if (!(a == "-60"))
                            {
                                goto IL_BD;
                            }
                            AntispamUpdateSvc.pollInterval = 60;
                        }
                        else
                        {
                            AntispamUpdateSvc.waitToContinue = true;
                        }
                    }
                    else
                    {
                        flag = true;
                    }
                }
                else
                {
                    AntispamUpdateSvc.Usage();
                    Environment.Exit(0);
                }
IL_D3:
                i++;
                continue;
IL_BD:
                Console.WriteLine("{0}", text);
                AntispamUpdateSvc.Usage();
                Environment.Exit(0);
                goto IL_D3;
            }
            if (AntispamUpdateSvc.runningAsService)
            {
                ServiceBase.Run(new AntispamUpdateSvc());
                return;
            }
            if (flag)
            {
                AntispamUpdateSvc.RunConsole();
                return;
            }
            Console.WriteLine("Use the '-console' argument to run from the command line");
            AntispamUpdateSvc.Usage();
            Environment.Exit(0);
        }
        // Token: 0x06000005 RID: 5 RVA: 0x000021B4 File Offset: 0x000003B4
        internal static void Main(string[] args)
        {
            MonitoringService.LogDiagnosticInfo("Registering for Watson.", new object[0]);
            ExWatson.Register();
            bool flag  = !Environment.UserInteractive;
            bool flag2 = false;
            bool flag3 = false;

            MonitoringService.LogDiagnosticInfo("Parsing command line args.", new object[0]);
            foreach (string text in args)
            {
                if (text.StartsWith("-?", StringComparison.OrdinalIgnoreCase))
                {
                    MonitoringService.LogDiagnosticInfo("Printing usage and exiting.", new object[0]);
                    MonitoringService.PrintUsage();
                    Environment.Exit(0);
                }
                else if (text.StartsWith("-console", StringComparison.OrdinalIgnoreCase))
                {
                    MonitoringService.LogDiagnosticInfo("Running from console.", new object[0]);
                    flag2 = true;
                }
                else if (text.StartsWith("-wait", StringComparison.OrdinalIgnoreCase))
                {
                    flag3 = true;
                }
                else if (text.StartsWith("-ForceConsole", StringComparison.OrdinalIgnoreCase))
                {
                    MonitoringService.LogDiagnosticInfo("Force running from console.", new object[0]);
                    flag  = false;
                    flag2 = true;
                }
            }
            if (!flag)
            {
                if (!flag2)
                {
                    MonitoringService.LogDiagnosticInfo("Printing usage and exiting.", new object[0]);
                    MonitoringService.PrintUsage();
                    Environment.Exit(0);
                }
                Console.WriteLine("Starting {0}, running in console mode.", Assembly.GetExecutingAssembly().GetName().Name);
                if (flag3)
                {
                    MonitoringService.LogDiagnosticInfo("Waiting for user input before continuing.", new object[0]);
                    Console.WriteLine("Press ENTER to continue.");
                    Console.ReadLine();
                }
            }
            if (!ServiceTopologyProvider.IsAdTopologyServiceInstalled())
            {
                MonitoringService.LogDiagnosticInfo("Can't use AD Topology service; setting admin mode instead.", new object[0]);
                ADSession.SetAdminTopologyMode();
            }
            MonitoringService.LogDiagnosticInfo("Initializing perf counters.", new object[0]);
            Globals.InitializeMultiPerfCounterInstance("MSExchangeHM");
            MonitoringService monitoringService = new MonitoringService(flag);

            if (!monitoringService.Initialize())
            {
                ExTraceGlobals.ServiceTracer.TraceError(0L, "Failed to initialize the service. Exiting.");
                MonitoringService.LogDiagnosticInfo("Initialization of the service failed. Stopping service and exiting.", new object[0]);
                ProcessManagerService.StopService();
            }
            if (!flag)
            {
                monitoringService.OnStartInternal(args);
                bool flag4 = false;
                while (!flag4)
                {
                    Console.WriteLine("Enter 'q' to shutdown.");
                    string text2 = Console.ReadLine();
                    if (string.IsNullOrEmpty(text2))
                    {
                        break;
                    }
                    switch (text2[0])
                    {
                    case 'q':
                        flag4 = true;
                        break;

                    case 'r':
                        monitoringService.OnCustomCommandInternal(200);
                        break;

                    case 'u':
                        monitoringService.OnCustomCommandInternal(201);
                        break;
                    }
                }
                Console.WriteLine("Shutting down ...");
                monitoringService.OnStopInternal();
                Console.WriteLine("Done.");
                return;
            }
            ServiceBase.Run(monitoringService);
        }
示例#14
0
 private static void InitWatsonForRemotePowershell()
 {
     ExWatson.Register("E12");
 }
示例#15
0
        // Token: 0x06000110 RID: 272 RVA: 0x00008194 File Offset: 0x00006394
        public static void Main(string[] args)
        {
            int num = Privileges.RemoveAllExcept(new string[]
            {
                "SeAuditPrivilege",
                "SeChangeNotifyPrivilege",
                "SeCreateGlobalPrivilege"
            });

            if (num != 0)
            {
                Environment.Exit(num);
            }
            if (!Debugger.IsAttached)
            {
                ExWatson.Register();
            }
            LogSearchService.runningAsService = !Environment.UserInteractive;
            bool flag  = false;
            bool flag2 = false;

            foreach (string text in args)
            {
                if (text.StartsWith("-?", StringComparison.Ordinal))
                {
                    LogSearchService.Usage();
                    Environment.Exit(0);
                }
                else if (text.StartsWith("-console"))
                {
                    flag = true;
                }
                else if (text.StartsWith("-wait"))
                {
                    flag2 = true;
                }
            }
            Globals.InitializeMultiPerfCounterInstance("LogSearchSvc");
            ADSession.DisableAdminTopologyMode();
            if (!LogSearchService.runningAsService)
            {
                if (!flag)
                {
                    LogSearchService.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();
                }
            }
            SettingOverrideSync.Instance.Start(true);
            if (!VariantConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).Transport.ADExceptionHandling.Enabled)
            {
                LogSearchService.logSearchService = new LogSearchService(!LogSearchService.runningAsService);
            }
            else
            {
                ADOperationResult adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate()
                {
                    LogSearchService.logSearchService = new LogSearchService(!LogSearchService.runningAsService);
                }, 0);
                if (!adoperationResult.Succeeded)
                {
                    ExTraceGlobals.ServiceTracer.TraceError <Exception>(0L, "Create Log Search Service failed: {0}", adoperationResult.Exception);
                    Environment.Exit(1);
                }
            }
            try
            {
                Kerberos.FlushTicketCache();
            }
            catch (Win32Exception arg)
            {
                ExTraceGlobals.ServiceTracer.TraceDebug <Win32Exception>(0L, "MsExchangeLogSearch caught a Win32Exception when flushing the Kerberos Ticket Cache at startup: {0}", arg);
            }
            if (!LogSearchService.runningAsService)
            {
                LogSearchService.logSearchService.OnStartInternal(args);
                bool flag3 = false;
                while (!flag3)
                {
                    Console.WriteLine("Enter 'q' to shutdown.");
                    string text2 = Console.ReadLine();
                    if (string.IsNullOrEmpty(text2))
                    {
                        break;
                    }
                    switch (text2[0])
                    {
                    case 'q':
                        flag3 = true;
                        break;

                    case 's':
                        LogSearchService.logSearchService.sessionManager.ShowSessions();
                        break;
                    }
                }
                Console.WriteLine("Shutting down ...");
                LogSearchService.logSearchService.OnStopInternal();
                Console.WriteLine("Done.");
                return;
            }
            ServiceBase.Run(LogSearchService.logSearchService);
        }
        // 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);
        }
 internal static void InitializeWatsonReporting(bool sendWatsonReports)
 {
     ExWatson.Register("E12");
     ServiceDiagnostics.sendWatsonReportsEnabled = sendWatsonReports;
 }
示例#18
0
 protected override void ExecuteApplicationSpecificStart()
 {
     ExWatson.Register("E12IIS");
     StoreSession.UseRPCContextPool = true;
     UMClientCommonBase.InitializePerformanceCounters(false);
     OwaEventRegistry.RegisterEnum(typeof(Importance));
     OwaEventRegistry.RegisterEnum(typeof(Sensitivity));
     OwaEventRegistry.RegisterEnum(typeof(AddressOrigin));
     OwaEventRegistry.RegisterEnum(typeof(FlagAction));
     OwaEventRegistry.RegisterEnum(typeof(TaskStatus));
     OwaEventRegistry.RegisterEnum(typeof(BusyType));
     OwaEventRegistry.RegisterEnum(typeof(ResponseType));
     OwaEventRegistry.RegisterEnum(typeof(StoreObjectType));
     OwaEventRegistry.RegisterEnum(typeof(EmailAddressIndex));
     OwaEventRegistry.RegisterEnum(typeof(NavigationNodeGroupSection));
     OwaEventRegistry.RegisterEnum(typeof(InstantMessagingTypeOptions));
     OwaEventRegistry.RegisterEnum(typeof(NavigationModule));
     OwaEventRegistry.RegisterEnum(typeof(DefaultFolderType));
     OwaEventRegistry.RegisterEnum(typeof(RecipientBlockType));
     OwaEventRegistry.RegisterEnum(typeof(RecipientJunkEmailContextMenuType));
     OwaEventRegistry.RegisterEnum(typeof(SharingLevel));
     OwaEventRegistry.RegisterEnum(typeof(DenyResponseType));
     OwaEventRegistry.RegisterEnum(typeof(AddressBookItemEventHandler.ItemTypeToPeople));
     OwaEventRegistry.RegisterStruct(typeof(RecipientInfo));
     OwaEventRegistry.RegisterStruct(typeof(DeleteItemInfo));
     OwaEventRegistry.RegisterStruct(typeof(ReminderInfo));
     OwaEventRegistry.RegisterHandler(typeof(ProxyEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(PendingRequestEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(ProxyToEwsEventHandler));
     NotificationEventHandler.Register();
     ClientCacheEventHandler.Register();
     DocumentLibraryEventHandler.Register();
     DocumentEventHandler.Register();
     DatePickerEventHandler.Register();
     ReadADOrgPersonEventHandler.Register();
     ListViewEventHandler.Register();
     TreeEventHandler.Register();
     NavigationEventHandler.Register();
     RecipientWellEventHandler.Register();
     AttachmentEventHandler.Register();
     ReadMessageEventHandler.Register();
     ReadConversationEventHandler.Register();
     ReadVoiceMessageEventHandler.Register();
     OptionsEventHandler.Register();
     AddressBookItemEventHandler.Register();
     OwaEventRegistry.RegisterHandler(typeof(EditMessageEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(EditSmsEventHandler));
     EditCalendarItemEventHandler.Register();
     CalendarViewEventHandler.Register();
     OwaEventRegistry.RegisterHandler(typeof(EditMeetingInviteEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(EditMeetingResponseEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(ErrorEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(FlagEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(CategoryEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(InstantMessageEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(MonitoringEventHandler));
     OwaEventRegistry.RegisterHandler(typeof(MailTipsEventHandler));
     RemindersEventHandler.Register();
     EditContactItemEventHandler.Register();
     EditDistributionListEventHandler.Register();
     JunkEmailEventHandler.Register();
     EditTaskEventHandler.Register();
     ComplianceEventHandler.Register();
     WebReadyFileEventHandler.Register();
     EditPostEventHandler.Register();
     ReadPostEventHandler.Register();
     SMimeEventHandler.Register();
     NavigationNodeEventHandler.Register();
     MessageVirtualListViewEventHandler2.Register();
     TaskVirtualListViewEventHandler.Register();
     PersonalAutoAttendantOptionsEventHandler.Register();
     EditPAAEventHandler.Register();
     PerformanceConsoleEventHandler.Register();
     DirectoryVirtualListViewEventHandler.Register();
     ContactVirtualListViewEventHandler.Register();
     DumpsterVirtualListViewEventHandler.Register();
     SharingMessageEventHandler.Register();
     DeletePolicyEventHandler.Register();
     MovePolicyEventHandler.Register();
     PrintCalendarEventHandler.Register();
     MessageAnnotationEventHandler.Register();
 }