У меня есть служба WF, которую я пытаюсь настроить для получения активности для «Подписки» и «Отказаться от подписки». Я использую This WF Durable Duplex Tutorial в качестве основы, потому что моя служба выполняет обратные вызовы для клиентов. В принципе, подумайте об этом как о чате.Почему переменная Workflow Service (4.0) имеет значение null в DoWhile Activity?
Я могу сделать клиентские звонки двум операциям приема просто отлично. Что происходит, так это обратный адрес клиента, который передается в службу Subscribe(). Адрес хранится как переменная в WF-сервисе, и все выглядит так, как будто это будет работать так, как ожидалось.
Когда клиент вызывает Unsubscribe(), мои часы, которые я установил на адрес var во время отладки, показывают его как null
. Так что же дает?
Вот основные настройки моего макета WF службы ...
Все окутана DoWhile деятельности. Внутри этого есть деятельность Пика и две ветви Пика. Первый филиал предназначен для подписки на мероприятия. Он имеет операцию receive-sendreply, которая присваивает строку, переданную клиентом, в адрес WF var. Вторая ветка обрабатывает отмену подписки. Триггер - это активность запроса, и адрес клиента снова передается.
Оттуда он переходит в последовательность, начиная с буквы If. Он проверяет, соответствует ли unsubscribeAddress
address
уже подписанным. Если это так, то он устанавливает address
в String.Empty
и отправляет сообщение об успешном завершении клиенту.
Почему переменная, охваченная областью действия DoWhile, неявно назначается нулевому значению? Я пытаюсь заставить это работать, поэтому я могу реализовать несколько клиентских подписчиков оттуда и работать с триггерами, которые вызывают обратные вызовы для нескольких клиентов.
CONCAT EDIT: Я установил точку останова на уровне DoWhile, и мой var имеет значение null, как только вызывается Unsubscribe()
. Когда вызывается Subscribe()
, часы показывают значение в var до конца. До I Unsubscribe()
с клиентом. Должен ли я вместо этого использовать операцию While?
Извините, Gnostus, это .Net Workflow Service, и я не могу создать класс и определить переменную как свойство. Если бы это был код, тогда было бы легче решать и бесконечно легче отлаживать при этом. – jlafay