API资源位置未注册

时间:2017-06-01 06:01:52

标签: c# .net tfs

我能够创建项目/删除/重命名所有内容但是当它来获取组时,它说“API资源位置ebbe6af8-0b91-4c13-8cf1-777c14858188未在http://khanamar3:8080/tfs/DefaultCollection/上注册”请帮助.. ...

public PagedGraphGroups GetAllGroups()
    {
        VssConnection connection = Context.Connection;
        GraphHttpClient graphClient = connection.GetClient<GraphHttpClient>();
        //error coming in next line...
        PagedGraphGroups groups = graphClient.GetGroupsAsync().Result;

        foreach (var group in groups.GraphGroups)
        {
            LogGroup(group);
        }

        return groups;
    }

2 个答案:

答案 0 :(得分:1)

可能有两个问题
  

API资源位置{0}未在{1}上注册

1。使用网址

我认为应该没有默认集合,因此在您的示例中

  

http://khanamar3:8080/tfs/

2。使用TFS / API版本(我自己遇到了这个问题)

2.1

首先在TFS管理中检查TFS服务器的版本 例如

  

C:\ Program Files \ Microsoft Team Foundation Server 2018 \ Tools \ TfsMgmt.exe

一旦知道您的TFS服务器版本,就可以看到它支持的API版本

https://docs.microsoft.com/en-us/rest/api/azure/devops/?view=vsts-rest-tfs-4.1

例如 TFS 2018 UPDATE 1支持API版本4.0

Api version and TFS

2.2

然后检查所使用的DLL调用的API版本。我在nuget网站上找不到此信息 https://www.nuget.org/packages/Microsoft.TeamFoundationServer.Client/

更新:您可以在此处检查哪个dll版本支持哪个TFS版本: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/dotnet-client-libraries?view=azure-devops

但如此处所述 How to specify the API version? 您可以使用ILSpy检查该方法传递的API版本

您的情况下的方法是:

  

GetGroupsAsync

您可以使用https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy

进行检查

ILSpy example

就我而言,它看起来像这样 ILSpy result

因此nuget版本16.153.0中的 API使用带有5.1.1的调用

因此,在我的情况下,TFS 2018 UPDATE 1不支持API版本5.1.1,因此我将降级nuget或升级TFS Server版本(或两者)

答案 1 :(得分:0)

您可以将IIdentityManagementService与ListApplicationGroups一起使用以获取应用程序组列表。

TeamFoundationIdentity[] ListApplicationGroups(
    string scopeId,
    ReadIdentityOptions readOptions
)

示例代码

var applicationGroups = identityManagementService.ListApplicationGroups(projectcollection.Uri.AbsoluteUri, ReadIdentityOptions.None);

另请看一下这个类似的问题:TFS 2013 get All TFS group including Windows group

相关问题