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); }