Estoy construyendo una aplicación web C# para administrar nuestros servidores DNS y estoy usando el espacio de nombres WMI para todo. Lo único con lo que estoy teniendo problemas es eliminar dominios DNS. Aquí está mi código:¿Cómo elimino un dominio DNS mediante programación?
internal static bool DeleteDomainFromDns(string DnsServerName, string ContainerName, string Name)
{
try
{
string Query = "SELECT * FROM MicrosoftDNS_Domain WHERE DnsServerName = '" + DnsServerName + "' AND ContainerName = '" + ContainerName + "' AND Name = '" + Name + "'";
ObjectQuery qry = new ObjectQuery(Query);
DnsProvider dns = new DnsProvider();
ManagementObjectSearcher s = new ManagementObjectSearcher(dns.Session, qry);
ManagementObjectCollection col = s.Get();
dns.Dispose();
foreach (ManagementObject obj in col)
{
obj.Delete(); //Exception occurs here
}
return true;
}
catch (Exception)
{
return false;
}
}
El error que recibo es: ManagementException fue capturado como "Fallo genérico". He leído en línea dónde las personas están eliminando dominios mediante el uso del espacio de nombres de la zona, pero eso solo funciona si el dominio que desea eliminar es una zona en sí misma. Necesito eliminar dominios que no son zonas. ¿Alguien puede ayudar?
¿Está seguro de que puede deshacerse de esa instancia 'DnsProvider' antes de iterar? – leppie
Sí, por dos razones. No lo uso más allá de ese punto y porque así es como lo hago para todos mis métodos de eliminación de DNS. – mcass20