2014-02-26 2 views
5

У меня есть WorkflowServiceHost Я запускаюсь в службе Windows. Все работает нормально, но через некоторое время служба перестает отвечать на запросы. Просматривая журналы трассировки можно увидеть выбросу исключения - в данном случае с помощью простой загрузке страницы метаданных - в отношении объекта связи в процессе прерывания:WCF WF Service endpoint перестает отвечать

The communication object, System.ServiceModel.Channels.TransportReplyChannelAcceptor+TransportReplyChannel, cannot be used for communication because it has been Aborted. 

Там нет предыдущих журналов в файле трассировки, которые указывают проблемы. Мы отслеживаем каждую минуту, чтобы убедиться, что она работает (потому что эта проблема возникает), и я вижу много успешных запросов на странице метаданных, прежде чем она внезапно начнет сообщать, что она находится в прерванном состоянии.

На этом этапе единственным способом восстановления является перезапуск службы. Я использовал WCF много раз раньше, но никогда не использовал интерфейс WF. У меня никогда не было этой проблемы с моими службами WCF, прежде чем могло произойти что-то с WorkflowServiceHost?

Спасибо!

UPDATE:

Вот некоторые из журналов трассировки из WCF:

enter image description here

+0

Это может быть связано с брандмауэром или прокси-сервером. – Musketyr

+0

Зачем это нормально работать в течение нескольких часов, а затем останавливаться? –

+0

Какой тип InstanceContextMode у вас есть? У меня есть аналогичная проблема, если на долгое время не было запросов на сервер, тогда соединение прерывается. Я добавляю Ping от клиента к серверу к соединению maintan. – Musketyr

ответ

0

добавить это, если вы не имеете его. исключение будет придираться канал, если не прервать (или перезапустить службу) What is the best workaround for the WCF client `using` block issue?

catch (Exception e) 
{ 
    ... 
    client.Abort(); 
    throw; 
} 
+0

это не на стороне клиента ... это проблема на стороне сервера. –

+0

правый .....если ошибка канала на стороне сервера из исключения, то вы должны прервать прокси-сервер вашего клиента – Joe

+0

Согласен. Однако нет прокси-сервера клиента. Этот сбой происходит при простом HTTP GET-запросе метаданных, а затем продолжает сбой, пока вся служба не завершит работу и не перезапустится. –

Смежные вопросы