C# TFS WorkItemChangedEvent激发两次
我有一个TFS2012插件,它使用 public EventNotificationStatus ProcessEvent() 以获取工作项changedevent。它没有做太多的工作,只是将WorkItemChangedEvent添加到消息队列中,以便稍后我可以使用不同的服务获取它 出于某种原因,对于我更改的每个工作项,事件总是触发两次,并将事件添加到队列中两次 知道为什么吗 我使用的代码是:C# TFS WorkItemChangedEvent激发两次,c#,events,C#,Events,我有一个TFS2012插件,它使用 public EventNotificationStatus ProcessEvent() 以获取工作项changedevent。它没有做太多的工作,只是将WorkItemChangedEvent添加到消息队列中,以便稍后我可以使用不同的服务获取它 出于某种原因,对于我更改的每个工作项,事件总是触发两次,并将事件添加到队列中两次 知道为什么吗 我使用的代码是: public EventNotificationStatus ProcessEvent(
public EventNotificationStatus ProcessEvent(
TeamFoundationRequestContext requestContext,
NotificationType notificationType, object notificationEventArgs,
out int statusCode, out string statusMessage, out ExceptionPropertyCollection properties)
{
statusCode = 0;
properties = null;
statusMessage = String.Empty;
try
{
if (notificationType == NotificationType.Notification && notificationEventArgs is WorkItemChangedEvent)
{
var ev = notificationEventArgs as WorkItemChangedEvent;
const string queueName = ".\\private$\\tfs";
var msgQueue = new MessageQueue(queueName);
var msg = new Message(ev);
msgQueue.Send(msg, MessageQueueTransactionType.Single);
Log.Debug(string.Format("Added event for work item #{0} to queue", ev.WorkItemTitle));
}
}
catch (Exception ex)
{
Log.Fatal("Error", ex);
return EventNotificationStatus.ActionDenied;
}
return EventNotificationStatus.ActionPermitted;
}
(和往常一样,在我提问几分钟后,我得到了正确的想法)
今天我学到了:
插件目录中的子文件夹不足以禁用插件。我在一个“旧”文件夹中备份了我的旧自动化系统,但它仍然加载了它。(和往常一样,在我提问几分钟后,我得到了正确的想法)
今天我学到了:
插件目录中的子文件夹不足以禁用插件。我在一个“旧”文件夹中备份了我的旧自动化,但它仍然加载了它。它肯定有不同的属性。你有没有检查过这个事件,看看它们有什么不同?@PreetSangha:我已经检查了添加的两条队列消息的主体。它们是绝对相同的,必然有不同的性质。你有没有检查过这个事件,看看它们有什么不同?@PreetSangha:我已经检查了添加的两条队列消息的主体。它们是绝对相同的。