1

我在 Visual Studio 中运行一个 Web 窗体站点,并在之后构建了一个 WCF Web 服务,以连接到 Team Foundation 的“构建质量已更改”和“构建完成”警报。

该服务运行良好,唯一的问题是 Team Foundation 不止一次调用它。就像我改变了构建质量并调用了服务一样。凉爽的。然后大约 10 到 15 分钟后,该服务会在迄今为止被调用的每个事件上再次调用。例如:

  1. 我运行 build1 - 服务在完成时被调用。15 分钟后,它再次被调用 build1。
  2. 我运行 build2 - 为 build2 调用服务。15 分钟后,它再次为 build1 和 build2 调用。它积累。

到目前为止,我只在 Visual Studio 调试器中尝试过这个。而且我已经确认,如果我手动调用 Web 服务,它不会累积。我不知道为什么会这样。我也许可以通过检查构建完成的时间来解决它,但我真的希望这根本不会发生。

另外,我正在使用 .NET 4.5、Visual Studio 2012、Team Foundation 2012

谢谢!

4

1 回答 1

1

所以我终于弄清楚发生了什么。我只需IsOneWay=true要从我的合同中删除:

[OperationContract(Action = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03/Notify"
                   IsOneWay=true)]

启用 IsOneWay 后,Team Foundation 永远不会从服务中得到响应,因此它无法确认它是否成功。因此,它每 15 分钟重试最多 5 次。由于某种原因,任何先前警报的重试都安排在完全相同的时间,所以看起来它正在累积。

于 2013-06-25T14:53:59.060 回答