2015-02-17 11 views
6

Ich verwende ein Dual-Service/Konsolen-Modell, um einen meiner Dienste zu testen. Der Code im Rampenlicht steht: „nicht genügend Speicher verfügbar, um diesen Befehl zu verarbeiten“Nicht genügend Speicher ist für `Console.ReadLine` verfügbar.`

static void Main(string[] args) 
{ 
    // Seems important to use the same service instance, regardless of debug or runtime. 
    var service = new HostService(); 
    service.EventLog.EntryWritten += EventLogEntryWritten; 

    if (Environment.UserInteractive) 
    { 
     service.OnStart(args); 
     Console.WriteLine("Host Service is running. Press any key to terminate."); 
     Console.ReadLine(); 
     service.OnStop(); 
    } 
    else 
    { 
     var servicesToRun = new ServiceBase[] { service }; 
     Run(servicesToRun); 
    } 
} 

Wenn ich die App unter dem Debugger ausführen, F5, auf der Linie Console.ReadLine(); ich ein System.IO.IOException, mit

Der einzige Zweck der ReadLine ist zu warten, bis jemand eine Taste drückt, um die App zu beenden, so kann ich mir nicht vorstellen, woher die Daten kommen, die so viel Speicher benötigt.

Antwort

9

Dies ist ein Dienst, und seine Ausgabe wird wahrscheinlich auf Windows-Anwendung festgelegt, ändern Sie die Ausgabe zu Konsolenanwendung, und dies sollte weggehen.

+0

Vielen Dank. Ich habe so viel Zeit mit kleinen Unannehmlichkeiten wie diesen verschwendet. Ich muss die ganze Nacht damit verbringen, mit echtem Code anzufangen. – ProfK

+1

Warten auf die 2-Minuten-Grenze zu akzeptieren :-) – ProfK

+0

Ich wünschte, es gab eine Möglichkeit, Projekt-Ausgabe-Typ (Konsole/Windows) zum Debuggen und Freigeben getrennt anzugeben. Ich habe versucht, -console Parameter Debug-Parameter hinzufügen, aber ich bekomme das gleiche Ergebnis. – nurettin