【问题标题】:TFS throws an TeamFoundationServerInvalidResponseException when trying to AuthenticateTFS 在尝试进行身份验证时抛出 TeamFoundationServerInvalidResponseException
【发布时间】:2016-02-04 15:36:25
【问题描述】:

我正在以编程方式从 TFS 中检出一些文件,并且在每次调用检出之前,我都会检查我是否经过身份验证。某些文件已正确签出,但在一个文件上 Authenticate() 方法失败,并出现以下异常:

Microsoft.TeamFoundation.TeamFoundationServerInvalidResponseException: Wenden Sie sich an den Administrator. Fehler bei der Anforderung an den Server.
Technische Informationen (für Administrator):
  HTTP-Code 200: OK
   bei Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.ReadMessage(HttpWebResponse webResponse, WebException webException, Stream responseStream, Boolean& closeResponse)
   bei Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.ReadResponse(HttpWebResponse webResponse, WebException webException)
   bei Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.IsAuthenticationChallenge(TfsMessage requestMessage, HttpWebResponse webResponse, WebException webException, TfsMessage& responseMessage)
   bei Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.SendRequest()
   bei Microsoft.TeamFoundation.Client.Channels.TfsHttpRequestChannel.Request(TfsMessage message, TimeSpan timeout)
   bei Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, TimeSpan timeout, Object[]& outputs)
   bei Microsoft.TeamFoundation.Framework.Client.LocationWebService.Connect(Int32 connectOptions, Int32 lastChangeId, Int32 features)
   bei Microsoft.TeamFoundation.Framework.Client.FrameworkServerDataProvider.Connect(ConnectOptions connectOptions)
   bei Microsoft.TeamFoundation.Client.TfsConnection.EnsureProviderConnected()

有谁知道,为什么我在这里得到这个InvalidResponse? 我正在通过 NuGet 使用最新的 TFS 客户端程序集。 身份验证基本上是这样完成的:

m_tfsServer = new TfsTeamProjectCollection(new Uri(serverUri), new TfsClientCredentials());
if(!m_tfsServer.HasAuthenticated)
    m_tfsServer.Authenticate();

【问题讨论】:

  • 你是如何传递 serveruri 的?
  • ServerUri 实际上像“myserver/tfs”一样传递
  • 此异常是否总是仅在检查该文件之前的身份验证时发生?该文件是否与其他文件属于同一个团队项目集合?
  • 是的,我总是在签出文件之前尝试通过上面的检查进行身份验证。所有文件都属于同一个团队项目。

标签: c# .net tfs


【解决方案1】:

通常我会这样做:

             string STRuri=@"http://myserver/teamservercollection"
             TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(STRuri));                 
             VersionControlServer vcs = tpc.GetService<VersionControlServer>();
             Workspace workspace = vcs.GetWorkspace(System.Environment.MachineName, vcs.AuthenticatedUser);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 2022-06-20
    • 1970-01-01
    • 2018-10-09
    • 2018-06-05
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多