Мы пытаемся использовать WF с несколькими участниками отслеживания, которые по сути слушают разные запросы - один для состояний активности, один для пользовательских записей отслеживания, которые являются подклассом CustomTrackingRecord.
Проблема в том, что мы можем использоватьоба TrackingParticipants по отдельности, но не вместе - мы никогда не получим наш подкласс от CustomTrackingRecord, но A CustomTrackingRecord.
Если я помещаю bopth запросы в один TrackingParticipant, а затем обрабатываю все в одном, оба работают отлично (что указывает на ошибкукуда мы их бросаем).
Код для комбинированного кода:
public WorkflowServiceTrackingParticipant ()
{
this.TrackingProfile = new TrackingProfile()
{
ActivityDefinitionId = "*",
ImplementationVisibility = ImplementationVisibility.All,
Name = "WorkflowServiceTrackingProfile",
Queries = {
new CustomTrackingQuery() { Name = "*", ActivityName = "*" },
new ActivityStateQuery() {
States = {
ActivityStates.Canceled,
ActivityStates.Closed,
ActivityStates.Executing,
ActivityStates.Faulted
}
},
}
};
}
При использовании двух участников TrackingPartient у нас есть два TrackingProfile (с разными именами), каждый из которых имеет один иззапрашивает.
в методе track, при использовании обоих отдельных строк:
protected override void Track(TrackingRecord record, TimeSpan timeout)
{
Console.WriteLine("*** ActivityTracking: " + record.GetType());
if (record is ActivityBasedTrackingRecord)
{
System.Diagnostics.Debugger.Break();
}
никогда не приводит к попаданию отладчика, когда используется только тот, который отслеживает наш подкласс CustomTrackingRecord (ActivityBasedTrackingRecord)затемэто работает.
Кто-нибудь еще знает об этом?На данный момент мы объединили оба участника TrackingParticipant в одно, но это имеет неприятный побочный эффект, заключающийся в том, что мы не можем динамически расширять возможности ведения журнала, что нам бы очень хотелось.Это известная проблема с WWF?
Используемая версия: 4.0 Sp1 Feature Update 1.