当工作项发生变化时,如何从TFS服务器收到通知?

Max*_*kin 5 tfs

我正在编写一个简单的自定义工作项浏览器,我希望它能够跟踪我的TFS服务器上工作项发生的实时更改.

例如,如果某人更改了工作项的标题或状态,我将使用此新信息更新我的工作项树.

我如何订阅此类活动?

Mar*_*ard 6

您可以使用TFS事件机制订阅Web服务端点,以便在工作项更改时收到通知.但是,这是为服务器 - >服务器通信而设计的,并且此推送通知机制不适用于客户端应用程序.

相反,我建议您使用TFS .NET Api定期轮询服务器以获取更新.要在使用查询获得完整结果集后使轮询操作高效,您可以修改WIQL以查找更改日期大于上次轮询服务器的工作项.

在这种情况下,"拉"模型比"推"模型更好地工作的原因如下:

  1. 要向客户端计算机发送Web服务推送通知,TFS实例需要能够直接与客户端盒上的端口通信.这意味着您必须打开相应的端口并允许来自防火墙的该方向的流量.
  2. 推送通知需要Team Foundation Server管理级别用户权限才能创建,这意味着只有管理用户才能使用您的应用程序
  3. 服务器将尝试向订户发送通知,直到订户删除事件订阅.这意味着您的应用程序崩溃或者没有正确清理它的订阅,然后服务器将尝试向没有监听它们的计算机发送消息.这将耗尽TFS服务器上的资源并在TFS服务器事件日志中生成错误.您的应用程序需要大量逻辑,以确保它记录了哪些订阅到位并适当地管理它们.

希望有道理.

  • 添加推理以回答上述问题,希望它有意义. (2认同)