2个TFS应用程序层之间的通信

时间:2018-06-05 08:50:29

标签: tfs

设置: 2个应用程序层(一个在DMZ(开发人员使用的应用程序层),一个在LAN(我用来测试的应用程序层)连接到位于LAN中的同一数据层.DMZ中的主应用程序层有TFS最初安装的代理功能,它已被删除,因为不需要该功能。 这两个应用程序层都在Windwos Server 2016上运行,版本为TFS2017.0.1,并连接到SQL Server 2014.

问题: 偶尔访问Web界面中的项目(通常每天1-2次,当他们第一次访问时)不起作用,浏览器会尝试加载页面多分钟,直到显示ajax错误(见下文)。

事件查看器显示大量错误,包含3条重复消息(下面包含完整的事件日志消息):

  • System.Net.Http.HttpRequestException:发送请求时发生错误。 ---&GT; System.Net.WebException:无法连接到远程服务器(由防火墙丢弃,打开端口没有多大意义,因为据我所知,这种通信不是必需的)< / em>的
  • GetInstalledExtensionStates ::找不到清单但包含错误。
  • Microsoft.TeamFoundation.Framework.Server.RequestCanceledException:TF400733:请求已取消:客户端已断开连接

最后两条错误消息多次出现,防火墙在页面加载时每隔几秒就会看到应用程序层之间的连接尝试。

即使第二个应用程序层未运行且未列为活动应用程序层,问题/连接尝试仍会继续。 此连接仅由之前配置了TFS代理的服务器尝试,在访问第二个应用程序层上的网页时无法重现该问题。

即使有错误消息,我也无法找到任何解决此问题的尝试。

有谁知道为什么ex-proxy仍然试图连接到其他应用程序层,并可能如何阻止它发生?我不认为允许这些联系是一个长期的解决方案,即使它现在可能有所帮助。

错误讯息:

TFS网页上显示的Ajax超时错误:

Error(s):
Ajax request has been timed out.
TFS.Core.Ajax.AjaxTimeoutException: Ajax request has been timed out.
    at at (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-common-vftORLcelTgjRkChaFEvvRgGeGkqNbmN9f9JjakT0rR0=:123:5805)
    at https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-common-vftORLcelTgjRkChaFEvvRgGeGkqNbmN9f9JjakT0rR0=:123:1356
    at rt (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-common-vftORLcelTgjRkChaFEvvRgGeGkqNbmN9f9JjakT0rR0=:123:938)
    at Object.error (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-common-vftORLcelTgjRkChaFEvvRgGeGkqNbmN9f9JjakT0rR0=:123:1308)
    at j (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-basejs-vLDQ_BPnMflh1yV4rhP43SsHlun31XvwYB1svh7haP9E=:3:26860)
    at Object.fireWith [as rejectWith] (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-basejs-vLDQ_BPnMflh1yV4rhP43SsHlun31XvwYB1svh7haP9E=:3:27673)
    at x (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-basejs-vLDQ_BPnMflh1yV4rhP43SsHlun31XvwYB1svh7haP9E=:5:11145)
    at Object.abort (https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-basejs-vLDQ_BPnMflh1yV4rhP43SsHlun31XvwYB1svh7haP9E=:5:8987)
    at https://[Public URL]/_public/_Bundling/Content?bundle=vss-bundle-basejs-vLDQ_BPnMflh1yV4rhP43SsHlun31XvwYB1svh7haP9E=:5:10539
Session Id: e174ae85-a447-4d6d-b1ab-846ad6db08ee

与其他应用程序层连接失败的事件日志消息:

[ TraceId]  {00000001-0001-0001-0000-000000000000}  
   Tracepoint 10013082 

   ServiceHost {F6E9CD99-1C96-47A8-B0A8-2BD83198E917} 

   ContextId 332114 

   ProcessName w3wp 

   Username [Domain User trying to connect] 

   VSID {FA945849-5329-4DFA-A13B-0108C2113593} 

   Service Web Access 

   Method Project.Home.index 

   Area ContributionManifestService 

   Layer Service 

   UserAgent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36 

   Uri [TFS Project Uri] 

   Path 

   UniqueIdentifier {B936D264-A314-488F-BA9F-580ABBABA835} 

   UserDefined 

   ExceptionType System.Net.Http.HttpRequestException 

   Message System.Net.Http.HttpRequestException: An error occurred while 
   sending the request. ---> System.Net.WebException: Unable to connect to 
   the remote server ---> System.Net.Sockets.SocketException: 
   A connection attempt failed because the connected party did not properly               
   respond after a period of time, or established connection failed because 
   connected host has failed to respond [IP of second application tier]:443 
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at 
   System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, 
   Socket s4, Socket s6, Socket& socket, IPAddress& address, 
   ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) 
   --- End of inner exception stack trace --- at 
   System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at 
   System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) -- 
   - End of inner exception stack trace --- at                      
   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at 
   Microsoft.VisualStudio.Services.Common.VssHttpMessageHandler. 
   <SendAsync>d__17.MoveNext() --- End of stack trace from previous location 
   where exception was thrown --- at 
   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase. 
   <SendAsync>d__45.MoveNext() --- End of stack trace from previous location 
   where exception was thrown --- at 
   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at 
    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at 
Microsoft.VisualStudio.Services.Gallery.Types.Server.PublishedExtensionCache.<GetExtensionAsset>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.ExtensionManagement.Server.ContributionManifestService.LoadManifest(IVssRequestContext requestContext, String publisherName, String extensionName, String version, String language, String accountToken) at Microsoft.VisualStudio.Services.ExtensionManagement.Server.ContributionManifestService.<>c__DisplayClass3_2.<TryGetManifest>b__1(String requestedCulture) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at Microsoft.VisualStudio.Services.ExtensionManagement.Server.ContributionManifestService.TryGetManifest(IVssRequestContext requestContext, String publisherName, String extensionName, String version, String accountToken, ExtensionManifest& extensionManifest)

第二个事件日志消息(未找到清单):

[ TraceId]  {00000001-0001-0001-0000-000000000000}  
   Tracepoint 10013622 

   ServiceHost {C72BAB51-D8CF-44DB-B3A3-F8B3EC11D13B} 

   ContextId 332110 

   ProcessName w3wp 

   Username [Domain User trying to connect] 

   VSID {FA945849-5329-4DFA-A13B-0108C2113593} 

   Service Web Access 

   Method Project.Home.index 

   Area InstalledExtensionService 

   Layer Service 

   UserAgent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36 

   Uri [TFS Project Uri]  

   Path 

   UniqueIdentifier {B936D264-A314-488F-BA9F-580ABBABA835} 

   UserDefined 

   ExceptionType 

   Message GetInstalledExtensionStates:: Manifest not found but including as error. Adding to results: ms.vss-build. Version: 15.105.148441404 Flags: BuiltIn, MultiVersion, Trusted 

第3次事件日志消息(客户端已断开连接)

[TraceId]  {00000001-0001-0001-0000-000000000000}  
   Tracepoint 10013082 

   ServiceHost {F6E9CD99-1C96-47A8-B0A8-2BD83198E917} 

   ContextId 332114 

   ProcessName w3wp 

   Username [Domain User trying to connect] 

   VSID {FA945849-5329-4DFA-A13B-0108C2113593} 

   Service Web Access 

   Method Project.Home.index 

   Area ContributionManifestService 

   Layer Service 

   UserAgent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36 

   Uri [TFS Project Uri]

   Path 

   UniqueIdentifier {B936D264-A314-488F-BA9F-580ABBABA835} 

   UserDefined 

   ExceptionType Microsoft.TeamFoundation.Framework.Server.RequestCanceledException 

   Message 
   Microsoft.TeamFoundation.Framework.Server.RequestCanceledException: 
   TF400733: The request has been canceled: Client disconnected.. at 
Microsoft.TeamFoundation.Framework.Server.VssRequestContext.CheckCanceled(Boolean throwIfShutdown) at Microsoft.TeamFoundation.Framework.Server.VssRequestContext.get_ServiceProvider() at Microsoft.TeamFoundation.Framework.Server.VssRequestContextExtensions.GetService[TService](IVssRequestContext context) at Microsoft.VisualStudio.Services.ExtensionManagement.Server.ContributionManifestService.TryGetManifest(IVssRequestContext requestContext, String publisherName, String extensionName, String version, String accountToken, ExtensionManifest& extensionManifest)

1 个答案:

答案 0 :(得分:0)

更新/解决方案(但不是真正的答案):

由于加载问题开始影响工作质量,我完全卸载了TFS并重新安装(没有代理功能)。 不再出现加载问题,并且不再显示相关的错误消息。

虽然ex-proxy和曾经配置的应用层之间似乎存在一些剩余的通信,但完全删除TFS可以解决问题。

但是,它仍然没有完全解释为什么 ex-proxy仍然会尝试连接到其他应用层。

简而言之:如果您配置TFS代理,请不要尝试将其配置为应用层,然后删除代理,事情就会中断。