Запуск длительного процесса в службе WCF

#c# #wcf #service #queue

#c# #wcf #Обслуживание #очередь

Вопрос:

У меня есть служба WCF, которая настраивается как односторонняя и ниже конфигурации службы: [Поведение службы (InstanceContextMode = InstanceContextMode.PerCall)] [ServiceBehavior(ConcurrencyMode = Параллельный режим.Несколько)]

Вот что делает служба: — Сначала синхронизируйте файлы из системы управления версиями, затем проанализируйте файлы, затем восстановите содержимое в другом формате и перепишите файлы. Наконец, снова зайдите в систему управления версиями.

Он отлично работает, когда вызывается только 1 вызов. Но когда одновременно выполняется несколько вызовов, все они будут заблокированы на этапе синхронизации пример вызывающий A содержит файл, но вызывающий B файл не найден. Если это произойдет, последующий вызов не будет выполнен до перезапуска пула приложений.

Нет возврата ошибки из службы, просто где-то потерялась, и процесс застрял посередине.

Целесообразно ли реализовать длительный процесс, подобный описанному выше, с синхронизацией файлов из системы управления версиями в службе wcf или вызовом exe-файла при каждом вызове службы, или я должен поместить его в механизм очереди и позволить очереди управлять обработкой?

Спасибо.