2015-02-17 3 views
6

Я использую модель с двумя сервисами/консолью для тестирования моей службы. Код в центре внимания находится:Недостаточно хранения доступно для `Console.ReadLine` .`

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); 
    } 
} 

Когда я запустить приложение под отладчиком, используя клавишу F5, на линии Console.ReadLine(); я получаю System.IO.IOException с «Не хватает памяти для обработки команды.»

Единственная цель ReadLine состоит в том, чтобы ждать, пока кто-то нажмет клавишу, чтобы закончить приложение, поэтому я не могу себе представить, откуда поступают данные, для чего требуется столько памяти.

ответ

9

Это сервис, и его выход, скорее всего, настроен на приложение Windows, измените вывод на консольное приложение, и это должно исчезнуть.

+0

Большое вам спасибо. Я потратил столько времени на небольшие неприятности, как это, я должен провести всю ночь с реальным кодом. – ProfK

+1

Ждать ограничения на 2 минуты :-) – ProfK

+0

Хотелось бы указать тип вывода проекта (консоль/окна) для отладки и выпуска отдельно. Я попробовал добавить параметр -console для отладки параметров, но получаю тот же результат. – nurettin