próbuję programowo dostać mój status witryny z IIS, aby sprawdzić, czy jest zatrzymany, ale ciągle otrzymuję następujący błąd,Programowo uzyskać stan witryny z IIS, wróci błąd COM
Identyfikator obiektu nie robi reprezentują poprawny obiekt. (Wyjątek od HRESULT: 0x800710D8)
Aplikacja korzysta z klasy SiteManager w celu uzyskania dostępu do statusu witryny. Oto kod,
//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;
mam sprawdzian ze strony statycznej wyizolować problem, upewniając się, że witryna jest uruchomiona, wszystkie są ważne konfiguracji punkt do ważnej puli aplikacji ... etc.
Daj mi znać, jeśli potrzebujesz więcej informacji. Czy to jest COM?
Bardzo prosty i bardzo użyteczny. Wielkie dzięki! –
Jest to poprawne, ogólnie udokumentowane w MSDN, że przeciążenie konstruktora dla ServerManagera, który otrzymuje fizyczną ścieżkę, nigdy nie powinno być używane, to jest dla wewnętrznej infrastruktury, a jak widzisz, może to mieć bardzo szkodliwe efekty, jeśli zostanie użyte. Rzeczy tak złe, jak usunięcie niewłaściwej konfiguracji i certyfikatu SSL, które naprawdę mogą uszkodzić twoją konfigurację, więc tak, jeśli próbujesz zarządzać zdalnymi maszynami, używaj tylko OpenRemote. –