private Boolean InstallWebFrontend()
        {
            txtProcessInfo.Text += Environment.NewLine + "Iniciando instalação...";
            const String installFail = "Falha ao instalar frontend web. ";

            // Verifica se o ASP.NET está registrado no IIS
            Boolean aspNetRegistered = IISHandler.IsAspNetRegistered();

            if (!aspNetRegistered)
            {
                txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + "O ASP.NET 2.0 não está registrado/habilitado no IIS.";
                return(false);
            }

            // Tenta criar os diretórios virtuais no IIS
            IISHandler iisHandler          = new IISHandler();
            Boolean    dirCreated          = false;
            String     webAccountingDir    = PathFormat.Adjust(frontendInfo.installDirectory) + "WebAccounting";
            String     webAdministratorDir = PathFormat.Adjust(frontendInfo.installDirectory) + "WebAdministrator";

            dirCreated = iisHandler.CreateVirtualDirectory(txtSiteName.Text, webAccountingDir, "LoginPage.aspx");
            if (!dirCreated)
            {
                txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + iisHandler.GetLastError();
                return(false);
            }
            dirCreated = iisHandler.CreateVirtualDirectory(txtSiteName.Text + "Admin", webAdministratorDir, "LoginPage.aspx");
            if (!dirCreated)
            {
                txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + iisHandler.GetLastError();
                return(false);
            }

            // Pergunta ao usuário se deseja reiniciar o IIS
            String dialogText = "O instalador precisa reiniciar o serviço de publicação na internet (IIS)." + Environment.NewLine +
                                "Escolha 'sim' para reiniciar agora ou 'não' para reiniciar mais tarde.";
            DialogResult dialogResult = MessageBox.Show(dialogText, "Reiniciar IIS agora?", MessageBoxButtons.YesNo);

            if (dialogResult != DialogResult.Yes)
            {
                return(true);                                  // recusou IISreset, sai do instalador (instalação OK)
            }
            // Tenta resetar o IIS
            Boolean iisReset = iisHandler.ResetIIS();

            if (!iisReset)
            {
                txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + iisHandler.GetLastError();
                return(false);
            }

            // Se não houve nenhuma falha notifica sucesso
            return(true);
        }