无法导航到 Windows 服务器计算机中的 VSTS url

Cannot Navigate to VSTS url in Windows Server Machine

我在 Windows 服务器 2012 上的 IIS 中托管了一个 MVC 应用程序。在我的应用程序中,我试图访问 VSTS,但我无法做到这一点。

我试过在服务器的 IE 中导航到 URL,但它也没有显示任何内容。仅显示白色屏幕。

我也尝试为端口 443 添加入站和出站规则,但没有任何效果。在调试控制台中,在网络下,它只发送 Get 请求,并且只在那里被击中。 我在网上搜索了很多但没有找到任何东西。任何帮助将不胜感激。

我正在尝试使用以下代码访问 VSTS

 WorkItemStore workItemStore = null;
 Uri collectionUri = new Uri("https://microsoft.visualstudio.com/DefaultCollection");
 TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection(collectionUri);
 workItemStore = teamProjectCollection.GetService<WorkItemStore>();

 Project teamProject = workItemStore.Projects["*ProjectName*"];
 WorkItemType workItemType = teamProject.WorkItemTypes["Scenario"];

您没有指定用于对 VSTS 进行身份验证的凭据,请为您的帐户启用 "Alternate authentication credentials" 并将您的代码更新为以下内容,然后重试:

    WorkItemStore workItemStore = null;
    Uri collectionUri = new Uri("https://microsoft.visualstudio.com/DefaultCollection");
    NetworkCredential nc = new NetworkCredential("alternateusername","alternatepassword");
    BasicAuthCredential bac = new BasicAuthCredential(nc);
    TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection(collectionUri,bac);
    workItemStore = teamProjectCollection.GetService<WorkItemStore>();

    Project teamProject = workItemStore.Projects["*ProjectName*"];
    WorkItemType workItemType = teamProject.WorkItemTypes["Scenario"];

默认情况下,对于托管在 IIS 上的应用程序,如果身份验证类型不是 Windows 身份验证,它会使用应用程序池身份,这将无法访问您的 VSTS。

因此您可以指定帐户来访问您的 VSTS。

简单代码:

NetworkCredential cred = new NetworkCredential("[user name]", "[password]");
            TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("[collection url]"), cred);
            tpc.EnsureAuthenticated();

您还可以更改应用程序池的标识。

  1. 打开 IIS 管理器 > 应用程序池
  2. Select 应用程序池 > 高级设置(操作窗格)
  3. 对于身份 属性,单击...按钮
  4. Select 内置帐户选项和 select 一个帐户

另一方面,关于增强的安全配置,如果您不想禁用它,您可以将其关闭或将必要的站点添加到信任站点列表中。 (它将提示包含 URL 的对话框)

您的场景仅支持基本身份验证(或 OAuth)(托管在 Azure 上并连接到 Visual Studio Team Services 的 Web 应用程序)。 放弃使用旧的 TFS API(又名 Object 模型)并拥抱 VSTS REST APIs。请按照以下步骤操作:

  • 创建您的个人访问令牌:PAT 将用作密码,至于用户名,您可以使用空字符串;
  • 对于任何 HTTP 请求,传入包含您的 PAT 的基本身份验证 headers:您可以使用您选择的任何 REST 库来完成它,或者您可以利用 VSTS 特定的 .NET名为 Microsoft.TeamFoundationServer.Client 的库,它使用下面的 REST API。对于后者,请遵循此示例代码以列出您的 VSTS 帐户的所有团队项目(PAT 可以访问的项目):

    using System.Net.Http;
    using System.Net.Http.Headers;
    string credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", YOUR_PATH)));
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("https://accountname.visualstudio.com:");  //url of our account
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials); 
        //connect to the REST endpoint            
        HttpResponseMessage response = client.GetAsync("_apis/projects?stateFilter=All&api-version=1.0").Result;