Мой сценарий следующий: рабочий процесс XAML хранится в базе данных, затем я создаю WorkflowServiceHost из него, и клиент может вызвать его.Пока нет проблем: у меня XAML1 в конечной точке 1.
Позже пользователь меняет xaml.Насколько я знаю из других вопросов, решение состоит в том, чтобы сохранить XAML1, а также сохранить новый XAML2 и запустить новый WorkflowServiceHost.Итак, в конечном итоге получилась конечная точка1 / конечная точка2 для XAML1 / XAML2, и клиент может решить, какой из них вызвать каким-либо образом.
Наконец, мой вопрос: есть ли способ как-то обнаружить, что первый WorkflowServiceHost не имеет ожидающего экземпляра внутри?Я имею в виду, что все рабочие процессы завершены внутри, и вы можете безопасно избавиться от этого хоста службы.
В худшем случае я могу использовать настраиваемого участника отслеживания для входа в систему, если экземпляр запущен, но, возможно, есть другой способ ....
// activity comes from xaml
var jobHost = new WorkflowServiceHost(activity, new Uri("net.pipe://localhost/WorkflowHost"));
jobHost.AddServiceEndpoint("IWorkflowHost", new System.ServiceModel.NetNamedPipeBinding(), "Job1");
// extensions
// behaviors
jobHost.Description.Behaviors.Add(_instanceStore);
jobHost.Open();