Ich bin heute auf dieses Problem gestoßen und es hat eine Weile gedauert, bis ich es herausgefunden habe. Ich habe einen Prozess von IIS aus gestartet und die Standardausgabe und die Fehlerausgabe umgeleitet. Wenn der Prozess beendet wurde, konnte ich damit ein Protokoll erstellen. Alles lief gut auf meiner Maschine, aber nicht so gut, nachdem ich es veröffentlicht hatte.Der gestartete Prozess hängt, wenn die umgeleitete Ausgabe relativ groß ist
Der Prozess sollte nur für eine Weile funktionieren und dann beenden, aber es würde einfach nicht. Es würde einfach nicht mehr reagieren und Ressourcen wie Sockets halten. Nach einiger Zeit konnte ich die Ursache des Problems feststellen: Das erzeugte Protokoll war zu groß. Nach dem Kommentieren aus dem laufenden Prozess, hat alles gut funktioniert.
Gerade für die Klärung, wie ich den Prozess gestartet:
Process process = new Process();
process.StartInfo.FileName = path;
process.StartInfo.Arguments = arguments;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.EnableRaisingEvents = true;
process.Exited += Process_Exited;
process.Start();
Und wie ich es Ausgang behandelt:
private static void Process_Exited(object sender, EventArgs e)
{
Process process = (Process)sender;
File.WriteAllText(path, process.StandardOutput.ReadToEnd() +
"\r\nEXCEPTIONS\r\n" + process.StandardError.ReadToEnd());
}
Auch wenn ich schon wissen, wie es zu beheben, habe ich noch möchten Ich weiß, was wirklich passiert ist und warum, denn es muss eine Möglichkeit für mich geben, ein Protokoll zu erstellen, das so groß ist, wie ich es möchte.
Ich glaube, das war tatsächlich was passiert ist! Und die Antwort war in der Dokumentation, Schande über mich. Danke für die Antwort! –