Como excluir pacotes COM+ que não possuem a opção Delete no menu de contexto

Olá!


Estou trabalhando em um projeto de uma aplicação que faz instalações de componentes em servidores de forma automatizada. Uma das funcionalidades é criar diretórios virtuais no IIS. Acontece que durante alguns testes dessa funcionalidade, notei que cada vez que os diretórios virtuais eram criados, também era criado um pacote COM+ de nome IIS-{//ROOT/}. O engraçado é que mesmo excluindo os diretórios virtuais, esses pacotes permaneciam, e não podiam ser excluídos (não havia a opção Delete no menu de contexto).



O problema foi corrigido na aplicação de instalação (não cheguei a ver a causa e correção, mas prometo fazê-lo), no entanto restava a necessidade de remover esses pacotes COM+, já que eram inúteis. Procurei no Google e encontrei uma solução para permitir que os pacotes fossem "excluíveis": usando o COMAdmin, alterar uma propriedade do pacote que libera esta opção.

O código utilizado é o abaixo:

ICOMAdminCatalog catalogo;
ICatalogCollection pacotesCOMPlus;
ICatalogObject pacoteCOMPlus = null;
catalogo = (ICOMAdminCatalog)Microsoft.VisualBasic.Interaction.CreateObject("COMAdmin.COMAdminCatalog", string.Empty);
pacotesCOMPlus = (ICatalogCollection)catalogo.GetCollection("Applications");
pacotesCOMPlus.Populate();
foreach (ICatalogObject pacote in pacotesCOMPlus)
if (pacote.Name.ToString().ToLower().Equals(textBox1.Text.ToLower().Trim()))
{
pacoteCOMPlus = pacote;
break;
}
if (pacoteCOMPlus != null)
{
pacoteCOMPlus.set_Value("Deleteable", true);
pacotesCOMPlus.SaveChanges();
MessageBox.Show(string.Format("Pode apagar o pacote {0} agora...", textBox1.Text));
}

Obs. textBox1 é o controle da telinha que fiz para rodar o código, e que é preenchida com o nome do pacote COM+.

Com isso, a opção de excluir o pacote COM+ foi habilitada!



[]'s

Comentários

Postagens mais visitadas deste blog

Trocando configurações padrão do Live TIM

Uma proposta de Clean Architecure com Modelo de Atores

Testes automatizados em sistemas autenticados com certificados digitais, usando Selenium e PhantomJS