#c# #wcf #service #queue
#c# #wcf #Обслуживание #очередь
Вопрос:
У меня есть служба WCF, которая настраивается как односторонняя и ниже конфигурации службы: [Поведение службы (InstanceContextMode = InstanceContextMode.PerCall)] [ServiceBehavior(ConcurrencyMode = Параллельный режим.Несколько)]
Вот что делает служба: — Сначала синхронизируйте файлы из системы управления версиями, затем проанализируйте файлы, затем восстановите содержимое в другом формате и перепишите файлы. Наконец, снова зайдите в систему управления версиями.
Он отлично работает, когда вызывается только 1 вызов. Но когда одновременно выполняется несколько вызовов, все они будут заблокированы на этапе синхронизации пример вызывающий A содержит файл, но вызывающий B файл не найден. Если это произойдет, последующий вызов не будет выполнен до перезапуска пула приложений.
Нет возврата ошибки из службы, просто где-то потерялась, и процесс застрял посередине.
Целесообразно ли реализовать длительный процесс, подобный описанному выше, с синхронизацией файлов из системы управления версиями в службе wcf или вызовом exe-файла при каждом вызове службы, или я должен поместить его в механизм очереди и позволить очереди управлять обработкой?
Спасибо.