2017-06-10 2 views
0

Ich habe eine Webanwendung, die einen Prozess öffnen und auf Beenden warten muss. Dieser Prozess ist ein SH-Skript, das Cygwin verwendet.C# -Prozess kann nicht auf IIS laufen

Ich bin mit dem folgenden Code:

 var process = new Process(); 
     var string processFileLocation = @"C:\script.sh"; 
     var string workingDirectoryLocation = @"C:\script"; 

     var processInformation = new ProcessStartInfo(processFileLocation) 
     { 
      WorkingDirectory = workingDirectoryLocation, 
      UseShellExecute = true 
     }; 

     process.StartInfo = processInformation; 
     process.Start(); 
     process.WaitForExit(); 

Wenn ich die Anwendung mit IISExpress laufen, alles in Ordnung funktioniert, wird das Skript callse zu sein.

Wenn ich es IIS hinzufügen, der Prozess einfach blockiert wird, erhalte ich nie eine Antwort von der Anforderung, die den Prozess nennen sollte.

Ich habe die Berechtigung "Vollzugriff" für diesen Ordner für den Anwendungspool hinzugefügt, den die Website verwendet, aber immer noch keinen Unterschied.

Irgendeine Idee, warum es so verhält?

+0

Wenn es in einer unbeaufsichtigten Einstellung ausgeführt wird, generiert das Skript eine Eingabeaufforderung und wird daher nie beendet? – GSerg

+1

Versuchen Sie, den Anwendungspool mit einem Administratorkonto auszuführen, um sicherzustellen, dass es sich nicht um ein Berechtigungsproblem handelt. –

+0

@KevinGosse Danke, Mann, das hat funktioniert. Ich hatte einige Probleme damit und deine Antwort hat es geschafft. Schreibe eine Antwort, damit ich sie als 'richtig' markieren kann. – CrazyDog

Antwort

1

Immer wenn etwas beim Ausführen in IIS nicht mehr ausgeführt wird, ist die Wahrscheinlichkeit sehr hoch, dass die Berechtigungen nicht ausreichen. Starten Sie, indem Sie Ihren Pool mit einem Administratorkonto ausführen. Wenn es das Problem löst, können Sie von dort aus arbeiten, um herauszufinden, welche Berechtigung Ihnen fehlte.

+1

Natürlich, wie von Kevin angedeutet, sollten Sie nie das Konto 'Administrator' für die Produktionsanwendung verwenden, nur als ein Werkzeug, um festzustellen, ob der Mangel an Berechtigungen das Problem ist. Wenn dies der Fall ist, sollten Sie ein Konto speziell für die Anwendung mit * nur * den erforderlichen Berechtigungen einrichten. – NightOwl888

Verwandte Themen