ISubscriber.EventHandler未调用

时间:2017-03-15 14:42:55

标签: visual-studio-2015 tfs

我为TFS 2015.3提供了一个非常小的服务器端插件。我在这里通过精彩的演练实现并部署了它:https://socialtfs.codeplex.com/wikipage?title=How%20to%20create%20and%20debug%20a%20Team%20Foundation%20Server%20server-side%20plugin

我们有两个完全分离的TFS 2015实例,一个用于测试目的,一个用于高效使用。我开发了服务器插件 - 使用Visual Studio 2015 Update 3(如果这很重要) - 在我们的测试TFS上我可以调试插件并且它按预期工作。

然而,当我将它部署到我们的实时系统时,该插件什么也没做。我添加了一些日志消息,并看到实际调用了实现ISubscriber接口的类的构造函数(所以我假设插件本身被TFS识别并加载),但是从不调用EventHandler方法(意味着没有日志消息是写)。

我检查了Windows事件日志(在事件查看器/应用程序和服务日志/ Microsoft-Team Foundation Server / Debug下),但没有发现任何相关内容。

我只有一个猜测,但如果我是对的,我需要帮助来解决这个问题。现场TFS是由不在这里工作的人设置的。我几天前使用默认设置设置了测试TFS。我确信这两个版本都是TFS 2015的Update 3版本,但我不知道是否有任何配置调整(几个月前设置实时系统的人)会导致插件无法正常工作。

有人可能会帮助我,或者让别人知道为什么插件可以在一个TFS上工作而不能在另一个TFS上工作?

这是我的班级:

public class MyEventHandler : ISubscriber
{
    public EventHandler()
    {
        // Called from Test- and Live-TFS!
        EventLog.WriteEntry("TFS Services", "Plugin loaded");
    }

    public EventNotificationStatus ProcessEvent(...)
    {
        // Called ONLY from Test-TFS!
        EventLog.WriteEntry("TFS Services", "Event handled");
        ...
    }
}

1 个答案:

答案 0 :(得分:0)

由于您没有在事件日志中看到任何错误,这意味着没有任何依赖项被破坏。

并没有写下任何信息。建议您在生产TFS服务器上注册“XXEvent”事件源。

您可以使用工具BisSubsribe注册活动。它可以将您自己的服务连接到TFS中发生的事件。还尝试重建程序集。更多详情请参阅此问题中的答案:TFS 2017 : ISubscriber plugin model still supported

此外,您可以在 TFS管理员控制台中手动比较两个服务器设置。