无法导航到Windows Server Machine中的VSTS URL

时间:2016-12-28 10:39:36

标签: azure-devops windows2012

我在Windows Server 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"];

3 个答案:

答案 0 :(得分:0)

您没有指定要对VSTS进行身份验证的凭据,启用&#34;备用身份验证凭据&#34;对于您的帐户,请将您的代码更新为以下内容,然后重试:

    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"];

答案 1 :(得分:0)

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

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

简单代码:

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

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

  1. 打开IIS管理器&gt;应用程序池
  2. 选择应用程序池&gt;高级设置(操作窗格)
  3. 对于Identity属性,请单击“...”按钮
  4. 选择内置帐户选项并选择一个帐户
  5. 另一方面,关于增强安全配置,如果您不想禁用它,可以关闭它或将必要的站点添加到信任站点列表。 (它将提示包含URL的对话框)

    enter image description here

答案 2 :(得分:0)

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

  • 创建您的个人访问令牌:PAT将用作密码,对于用户名,您可以使用空字符串;
  • 对于任何HTTP请求,传入包含PAT的Basic Auth标头:您可以使用您选择的任何REST库,或者您可以利用名为Microsoft.TeamFoundationServer.Client的VSTS特定.NET库,它使用下面的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;