Waitforexit Access Is Denied


Ich habe eine ASP-Anwendung, die process. start verwendet, um eine ausführbare Datei (Graphviz) aufrufen. Alles funktioniert gut in meiner Entwicklungsumgebung, aber wenn ich zur Produktion Im nicht in der Lage, den Prozess zu laufen. Heres die Details. Ich habe dieses einfache sub, um das Problem zu zeigen. Es gibt drei Szenarien hier. Zuerst teste ich einfach den Notizzettel. - Entwicklungsarbeiten - Fertigungsarbeiten (Dies ist der einzige Fall, dass ich in der Produktion arbeiten konnte) Zweitens habe ich eine einfache Batch-Datei, die ein Dokument öffnet im Notizblock. (Notepad c: test. dot) Entwicklungsarbeiten Die Produktion funktioniert nicht Drittens habe ich nennen Graphvizs dot. exe. Dies ist, was ich versuche, auf eine andere Seite zu arbeiten. Entwicklungsarbeiten Die Produktion funktioniert nicht In allen Fällen, in denen die Produktion nicht funktioniert, kann ich dieses Verhalten reproduzieren - Wenn ich ein impersonate true zu meiner web. config hinzufüge, dann bekomme ich keine Fehler zurück. Die Seite läuft so, als wäre sie erfolgreich. Wenn ich nicht ein impersonate config hinzufüge, aber die Anmeldeinformationen zum ProcessInfo-Objekt hinzufügen, dann wird die Seite wieder ohne Fehler laufen. Der Prozess wird jedoch nicht in der Produktion gestartet. Wenn ich nicht die Identitätswechsel oder ProcessInfo An-Meldeinformation hinzufügen, dann bekomme ich einen Fehler. Dies ist die Fehlerausgabe. Zugriff verweigert Beschreibung: Eine unbehandelte Ausnahme trat während der Ausführung der aktuellen Webanforderung auf. Bitte überprüfen Sie die Stack-Ablaufverfolgung für weitere Informationen über den Fehler und wo es aus dem Code stammt. Ich habe versucht, eine Vielzahl von Sicherheits-Einstellungen. Derzeit wird mein Anwendungspool mit einer Identität ausgeführt, die ein lokaler Administrator ist. Ich habe auch versucht, das Hinzufügen von allen zu der Administrator-Gruppe in einem Versuch zu sehen, ob Sicherheit das Root-Problem war. Außerdem verwende ich Plesk, um meine Gebiet zu handhaben. Ich habe ausgiebig nach Optionen gesucht, die diese Situation beeinträchtigen könnten und noch nicht gefunden haben. Auch der Prozessstart funktioniert in der Produktion, wenn Sie einen einfachen Aufruf zum Starten von Notepad machen. Es ist sehr schwer, diese ohne weitere ausführliche Protokolle zu verengen. Vielen Dank im Voraus für jede Hilfe, die Sie anbieten können. Das macht mich verrückt. Ich überprüft, dass dies der gleiche Benutzer von Security. Windowsidentity. GetCurrent. User zurückgegeben wird. Ich ging auch voran und explizit gab die gleiche Benutzer-Berechtigung für die Dateien amp, die mit der Anfrage, haben aber das gleiche Ergebnis. Denken Sie daran, dass ich die Anwendung mit einem Admin-Konto ausführen kann, aber der Prozess läuft tatsächlich mit Ausnahme des ersten Beispiels, wo Notizbuch gestartet wird. Ndash DataMe Feb 21 13 um 17: 42Geschrieben ein Stück Code, die eine Anwendung exe mit Process. Start starten würde, auf der Entwicklungsmaschine funktionierte es ohne ein Problem, aber wenn es auf Client-Maschine gestartet gab es 8220Access Denied8221 Fehler. Es stellte sich heraus, dass, wenn der Code läuft in der Domäne kontrollierten Benutzerumgebung Process. Start benötigt eine Reihe von Sicherheit Anmeldeinformationen standardmäßig ausgeführt werden. Nun, in der Praxis können wir nicht einfach hart codieren keine Anmeldeinformationen oder sogar Eingabeaufforderung. Die Lösung, gibt es ein Attribut namens UseShellExecute, die muss False gesetzt werden. Dadurch wird die Exe ohne Anmeldeinformationen gestartet werden. Beispielcode lautet wie folgt: System. Diagnostics. Process p new System. Diagnostics. Process () p. StartInfo. FileName Pfad p. StartInfo. Arguments string. Format (82208221 8221 8221 82218221, arg1, arg2) p. StartInfo. UseShellExecute false P. Start () p. WaitForExit ()

Comments