【问题标题】:Team Foundation: Web Service is Called Multiple TimesTeam Foundation:Web 服务被多次调用
【发布时间】:2013-06-25 22:53:59
【问题描述】:

我在 Visual Studio 中运行一个 Web 窗体站点,并在 this 之后构建了一个 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

谢谢!

【问题讨论】:

  • 这是自 TFS 2012 更新 2 或 3 以来的行为变化。我们的 Notify 操作合同定义为 IsOneWay=true 在 TFS 2012 更新 1 之前工作正常。升级到更新后3 我们开始出现与您看到的相同的行为。

标签: c# wcf tfs


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多