ich programmatisch versuche auf meine Seite Status von IIS, um zu sehen, wenn es aufgehört hat, aber ich hielt die folgende Fehlermeldung erhalten,Programmatically Website Status von IIS erhalten, wird wieder COM Fehler
Die Objektkennung nicht repräsentieren ein gültiges Objekt. (Ausnahme von HRESULT: 0x800710D8)
Die Anwendung verwendet ServerManager Site-Klasse, um auf den Standortstatus zuzugreifen. Hier ist der Code,
//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;
Ich habe Test mit statischer Website, das Problem zu isolieren, um sicherzustellen, dass die Website ist und läuft, alle Konfiguration gilt, zeigen Sie auf den gültigen Anwendungspool ... etc.
Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ist es das COM-Ding?
Sehr einfach und sehr nützlich. Danke vielmals! –
Das ist im Allgemeinen korrekt, wie in MSDN dokumentiert, dass die Überladung des Konstruktors für ServerManager, die einen physischen Pfad empfängt, niemals für die interne Infrastruktur verwendet werden sollte und, wie Sie gesehen haben, sehr schädliche Auswirkungen haben kann. Dinge, die so schlimm sind wie das Entfernen der falschen SSL-Konfiguration und des Zertifikats, die Ihre Konfiguration wirklich beschädigen können, also ja, wenn Sie versuchen, entfernte Maschinen zu verwalten, benutzen Sie nur OpenRemote. –