gpt4 book ai didi

web-services - 是否有关于 TFS Web 服务的任何文档?

转载 作者:行者123 更新时间:2023-12-03 14:50:48 25 4
gpt4 key购买 nike

我正在寻找有关 Microsoft TFS Web 服务的任何信息。首先,我知道不支持直接访问 Microsoft TFS Web 服务,并且 Microsoft 没有为此提供任何文档。因此,我不期待任何 Microsoft 支持或帮助。

我了解可用于 TFS 的 .Net API,它仅适用于 Microsoft 操作系统。我在 Windows 上使用过很多次,但是我需要做非 Windows 工作来访问 TFS,我不能使用 .Net,我不能使用安装在 Windows 计算机上的代理(或“垫片”)来提供 Web 服务对于.Net API。

我知道 Teamprise 对 Web 服务进行了逆向工程,他们成功地利用这些知识制作了一个非常好的跨平台 Team Explorer 和 Java 命令行实现来访问 TFS。事实上,它们被 Microsoft 购买并且产品重新命名并重新发布为 Microsoft Visual Studio Team Explorer Everywhere。

我还在几个非 Windows 平台上针对 Mono 测试了 .Net API,但它们不兼容。初始 NTLMv2 身份验证正在使用 Mono 不支持的调用。可以理解,它们似乎是针对 Win32 调用 NTLMv2 支持。

因此,在我不厌其烦地为自己逆向工程之前,并处理 NTLMv2 来做到这一点之前。我希望网络上有一些隐藏或隐藏的信息,有人可能已经记录了 2005 年、2008 年和/或 2010 年的 TFS 网络服务的某些部分。

请不要评论或发布关于 Microsoft 不推荐或不支持的评论或帖子,我应该找到一种使用 .Net API 的方法,或建议代理/Shim 是最佳解决方案。我完全了解微软对此的官方立场,以及支持的变通方法是什么。

最佳答案

我不知道 TFS Web 服务的任何文档,但我可以分享一些调用它们的技巧。

您提到的 NTLM 身份验证实际上是一个单独的层:您必须先向 IIS 进行身份验证,然后它才能让您调用 TFS Web 服务。我不知道有任何开源软件可以为您执行 NTLM 身份验证,但 TFS 2010 可以轻松启用“协商”身份验证( SPNEGO on WikipediaAuthentication by using Kerberos Ticket on MSDN )。 Negotiate 支持 NTLM 和 Kerberos 子系统,并且可能有一些现有的软件可以使用系统的 Kerberos 库来驱动它(我认为 curl 可以做到)。如果您必须自己构建它,走与 Kerberos 协商的路线可能会更容易。

一旦您通过身份验证,您就可以开始调用服务。首先为每个服务拉下 WSDL(在每个端点 URI 上粘贴“?wsdl”后缀)。跳转到 TFS 的安装位置并浏览端点的 Web 应用程序目录。某些端点有多个版本可与 TFS 2005 和 2008 兼容,但通常新版本不是多余的(它们添加了新内容)。您可能已经有一个最喜欢的 SOAP 客户端库(Java 有很多),但我真的不能推荐任何一个,因为我们在 Teamprise 编写了我们自己的库。

通过 WSDL 很容易发现诸如版本控制、构建和通用结构之类的服务。大多数操作都有明显的名称,但复杂类型的字段通常是 super 缩写的。确定何时调用哪些方法的最佳方法是使用 Fiddler 或 Wireshark 或其他一些 HTTP 检查程序观看 VS TFS 客户端或 TEE。 TFS VC 会在 Web 服务之外执行诸如文件上传/下载之类的操作(观看网络跟踪以查看多部分 MIME 上传过程,并确保在执行此操作时发送正确的值)。

关于工作项跟踪 Web 服务的注意事项:此服务将极难掌握。 WIT 设计涉及客户端预先查询服务器以获取大量无模式元数据,这些元数据保存在客户端上(但随着更多 Web 服务调用的进行而逐渐刷新)。此元数据驱动有关工作项的所有客户端行为(工作项类型中有哪些字段、字段的类型、字段中允许哪些值、更改时运行的规则等),并且需要长期认真研究,以建立客户行为,使工作项目栩栩如生。一旦您有了工作项,就可以轻松地将其发送到服务器以通过 Web 服务进行更新。

这是很多工作,但可以逐步完成,例如,如果您只需要一些 VC 功能。 TEE 团队正在努力使从其他平台的访问变得更容易。如果您在这方面有任何问题或建议,请联系 Martin Woodward (martin.woodward@microsoft.com)。

关于web-services - 是否有关于 TFS Web 服务的任何文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com