Example #1
0
        protected void Uninstall()
        {
            TaskLogger.LogEnter();
            if (!ServiceControllerUtils.IsInstalled(this.Name))
            {
                base.WriteVerbose(Strings.ServiceNotInstalled(this.Name));
                return;
            }
            base.WriteVerbose(Strings.WillUninstallInstalledService(this.Name));
            try
            {
                this.serviceProcessInstaller.Uninstall(null);
            }
            catch (Win32Exception ex)
            {
                if (ex.NativeErrorCode == 1060)
                {
                    this.WriteWarning(Strings.ServiceAlreadyNotInstalled(this.Name));
                }
                else
                {
                    base.WriteError(new ServiceUninstallFailureException(this.Name, ex.Message, ex), ErrorCategory.InvalidOperation, null);
                }
            }
            catch (InstallException ex2)
            {
                base.WriteError(new ServiceUninstallFailureException(this.Name, ex2.Message, ex2), ErrorCategory.InvalidOperation, null);
            }
            if (this.serviceFirewallRules.Count > 0)
            {
                using (List <ExchangeFirewallRule> .Enumerator enumerator = this.serviceFirewallRules.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        ExchangeFirewallRule exchangeFirewallRule = enumerator.Current;
                        TaskLogger.Trace("Removing Windows Firewall Rule for Service {0}", new object[]
                        {
                            this.Name
                        });
                        exchangeFirewallRule.Remove();
                    }
                    return;
                }
            }
            string fullPath = this.serviceProcessInstaller.Context.Parameters["assemblypath"];

            TaskLogger.Trace("Removing Service {0} from windows firewall exception", new object[]
            {
                this.Name
            });
            ManageService.RemoveAssemblyFromFirewallExceptions(this.Name, fullPath, new Task.TaskErrorLoggingDelegate(base.WriteError));
            TaskLogger.LogExit();
        }
Example #2
0
 protected void AddFirewallRule(ExchangeFirewallRule firewallRule)
 {
     this.serviceFirewallRules.Add(firewallRule);
 }