Programaticamente obter status do site do IIS, recebe de volta erro COM

Eu estou tentando programaticamente obter o status do meu site do IIS para ver se ele está parado, mas continuei recebendo o seguinte erro,

O identificador de objeto não representa um objeto válido. (Exceção de HRESULT: 0x800710D8)

O aplicativo está usando a classe Site do ServerManager para acessar o status do site. Aqui está o código

//This is fine, gets back the site 
var serverManager = new Microsoft.Web.Administration.ServerManager(ConfigPath);
var site = serverManager.Sites.FirstOrDefault(x => x.Id == 5);
if (site == null) return;
var appPoolName = site.Applications["/"].ApplicationPoolName;
//error!
var state = site.State;

Eu testei com o site estático para isolar o problema, certificando-se de que o site está ativo e em execução, todas as configurações são válidas, aponte para o pool de aplicativos válido ... etc.

Deixe-me saber se você precisar de mais detalhes. É a coisa COM?

questionAnswers(2)

yourAnswerToTheQuestion