несколько экземпляров рабочего процесса wcf в памяти - PullRequest
0 голосов
/ 30 апреля 2011

Я разработал два длительных рабочих процесса WCF (с длительным сроком службы) с именами «WCF A» и «WCF B».

У меня есть цикл в 'WCF A', я отправляю сообщение в 'WCF B' при каждом выполнении этого цикла. Таким образом, в памяти могут существовать некоторые экземпляры WCF B до тех пор, пока WCF B не получит сообщение остановки. Оба WCF A и B размещены в службе Windows. Сначала с выполнением службы Windows все в порядке, но через некоторое время они не будут работать, и, как я наблюдал в диспетчере задач, они не используют процессор.

Откуда проблема?

1 Ответ

0 голосов
/ 01 мая 2011

Все зависит, мониторинг использования процессора ничего не говорит.Это может быть:

  1. где-то в вашем цикле произошла тупиковая ситуация, т. Е. Может быть, каждый экземпляр использует общие объекты?
  2. канал выходит из строя (из-за тайм-аутов, исключений и т. Д.), Из-за которых выполнение не может пройти.
  3. зависит от того, какой объект каждого экземпляра WCF B содержит, может достигать предела ОС (например: номер открытого файла)

От вашего вопроса, я думаю, выможет оказаться, что отладочные сервисы затруднены, вы можете попробовать следующее:

  1. включить ведение журнала WCF, в SO много записей или google
  2. присоединить отладчик к вашей службе, если вы обнаружите, что это даетЕсли вы выбираете произвольную точку входа, вы можете попробовать выполнить вызов Debugger.Launch () при перегрузке OnStart вашей службы
  3. записать в файл, где ваш вызов до
  4. запустить вашу службу как консольное приложение

надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...