DirectoryEntry-IIS-Zugriffsberechtigungen

Habe ich eine Konsole-Anwendung, die Liste der website-Bindung im IIS

using (var directoryEntry = new DirectoryEntry("IIS://localhost/w3svc/" + GetWebSiteId())) {
    var bindings = directoryEntry.Properties["ServerBindings"]; 
}

Nenne ich diese Konsole-Anwendung aus ASP.NET über Prozess

var process = new Process {
   StartInfo = new ProcessStartInfo {
       FileName = "c:/app.exe",
       Arguments = "check",
       UseShellExecute = false,
       RedirectStandardOutput = true,
       CreateNoWindow = true
    }
};

Funktioniert alles einwandfrei auf die Entwicklung der Maschine unter Widows 7 /IIS 7.5, aber wenn ich den test auf der Windows-2012 /IIS 8 im immer "Zugriff verweigert" - Fehler.

Fehlerprotokoll

"System.Runtime.InteropServices.COMException (0x80070005): Access is denied.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.ChildEnumerator..ctor(DirectoryEntry container)
at System.DirectoryServices.DirectoryEntries.GetEnumerator()
at IISSubdomainManagement.Program.GetWebSiteId()
at IISSubdomainManagement.Program.TotalBindings()
at IISSubdomainManagement.Program.Main(String[] args)"

p.s Anwendungspool-Identität "ApplicationPoolIdentity"


Ich vergessen zu erwähnen, dass meine Konsole app funktioniert gut auf meinem server, wenn ich es ausführen von CMD

  • Ich habe diese man vor und wenn ich mich erinnere, das Problem ist entweder, wo es gesucht wird der AD-server die Anmeldeinformationen nicht die richtigen Berechtigungen haben. Es ist ärgerlich, weil es gut funktioniert, lokal
Schreibe einen Kommentar