【问题标题】:TFS2015 new install, 503 Service UnavailableTFS2015 新安装,503 服务不可用
【发布时间】:2016-08-26 21:51:36
【问题描述】:

我已经按照“单服务器”手册 (https://msdn.microsoft.com/en-us/Library/vs/alm/TFS/setup/single-server?f=255&MSPPError=-2147217396) 安装了 TFS 2015。

我配置了一个简单的构建,构建了一个添加了单元测试项目的小型控制台应用程序,以及一个小单元测试。

构建配置现在包含三个步骤。

  1. NuGet 安装程序
  2. Visual Studio 构建
  3. Visual Studio 测试

现在,每次调用第三步,都会出现错误,浏览器中出现一个红色框,上面有文字:

503: 503: error
TFS.WebApi.Exception: 503: error    at k (http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/corejs?v=IiKWXrylMIeJdHBpXJwuE0SpVjVnmci79kLQuyG8-s41:64:375)
at http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/corejs?v=IiKWXrylMIeJdHBpXJwuE0SpVjVnmci79kLQuyG8-s41:64:2955
at d (http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/corejs?v=IiKWXrylMIeJdHBpXJwuE0SpVjVnmci79kLQuyG8-s41:64:635)
at http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/corejs?v=IiKWXrylMIeJdHBpXJwuE0SpVjVnmci79kLQuyG8-s41:64:2888
at l (http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/q.js:27:8122)
at http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/q.js:27:8348
at t.when (http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/q.js:27:3780)
at t.u.promiseDispatch (http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/q.js:27:2824)
at http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/q.js:27:1649
at MessagePort.t (http://teamfs2015:8080/tfs/_static/tfs/Dev14.M95.3/_scripts/TFS/min/q.js:27:5773)
Session Id: c0c3ef7f-e1db-4bf8-976a-f820a0701334

是的,烦人的 503:服务不可用错误......

有什么办法可以消除这个错误吗? 我正在为构建服务器使用域帐户,它们未配置为过期,这些帐户位于管理员组中。等等等等。

我想我在互联网上尝试了有关此问题的所有信息,但似乎没有任何效果。

我们在安装 TFS2012 时遇到了同样的问题。

查看事件查看器(应用程序),每次出现问题前都有以下信息:

  1. 信息:TFS 服务

    应用程序请求处理开始

    服务器版本 = Microsoft.TeamFoundation.Framework.Server,版本=14.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a 服务帐户 = NT AUTHORITY\NETWORK SERVICE 机器名称 = TEAMFS2015

    应用域:/LM/W3SVC/2/ROOT/tfs-1-131066466082045873

  2. 信息:TFS 服务

    应用程序因以下原因被关闭:HostingEnvironment 应用域:/LM/W3SVC/2/ROOT/tfs-1-131066466082045873

  3. 信息:TraceLog Profiler

    TraceLog Profiler 组件关闭,处理 w3wp.exe

  4. 信息:TraceLog Profiler

    TraceLog Profiler 组件关闭,进程 te.processhost.managed.exe

  5. 错误:Perflib

    DLL“C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_perf.dll”中服务“ASP.NET_64_2.0.50727”的打开过程失败。此服务的性能数据将不可用。数据部分的前四个字节 (DWORD) 包含错误代码。

  6. 错误:Perflib

    DLL“C:\Windows\System32\Secur32.dll”中服务“Lsa”的打开过程失败。此服务的性能数据将不可用。数据部分的前四个字节 (DWORD) 包含错误代码。

  7. 错误:PerfNET

    无法打开服务器服务性能对象。数据部分的前四个字节 (DWORD) 包含状态代码。

更新

“Microsoft Team Foundation Server 应用程序池”每次都“停止”。所以问题可能与应用程序池有关。否则应用程序池将因另一个错误而停止....

更新 阅读 jessehouwing 的评论,有来自事件查看器的结果:“应用程序和服务日志”>“Microsoft-Team Foundation Server”>“调试”:

  1. 错误 Total Time:19235.2866 (Delay 0ms) (Duration 19235.2866ms) (Threshold 10ms) (Fast 18) (Truncated 0) VssRequestContext.HostManagement.TaskAgentPoolHub.Connect:19223 VssRequestContext.HostManagement.TaskAgentPoolHub.Connect:-19235 HostManagement.AspNetRequestContext.EndRequest:19235
  2. 错误 Total Time:19372.701 (Delay 0ms) (Duration 19372.701ms) (Threshold 10ms) (Fast 19) (Truncated 0) HostManagement.AspNetRequestContext.EndRequest:19372
  3. 错误 Total Time:19235.1277 (Delay 0ms) (Duration 19235.1277ms) (Threshold 10ms) (Fast 19) (Truncated 0) HostManagement.AspNetRequestContext.EndRequest:19235
  4. 错误 Total Time:19278.2777 (Delay 0ms) (Duration 19278.2777ms) (Threshold 10ms) (Fast 19) (Truncated 0) HostManagement.AspNetRequestContext.EndRequest:19278 5、6和7.信息 TFS 活动日志条目
  5. 错误 Microsoft.TeamFoundation.Framework.Server.RequestCanceledException:TF400733:请求已被取消:客户端已断开连接.. 在 Microsoft.TeamFoundation.Framework.Server.VssRequestContext.CheckCanceled(布尔 throwIfShutdown) 在 Microsoft.TeamFoundation.Framework.Server.VssRequestContext.get_ServiceProvider() 在 Microsoft.TeamFoundation.Framework.Server.VssRequestContextExtensions.GetService[TService](IVssRequestContext 上下文) 在 Microsoft.TeamFoundation.Framework.Server.ActivityLoggingAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) 在 System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext,CancellationToken cancelToken) --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()
  6. 错误 Microsoft.TeamFoundation.Framework.Server.RequestCanceledException:TF400733:请求已被取消:客户端已断开连接.. 在 Microsoft.TeamFoundation.Framework.Server.VssRequestContext.CheckCanceled(布尔 throwIfShutdown) 在 Microsoft.TeamFoundation.Framework.Server.VssRequestContext.get_ServiceProvider() 在 Microsoft.TeamFoundation.Framework.Server.VssRequestContextExtensions.GetService[TService](IVssRequestContext 上下文) 在 Microsoft.TeamFoundation.Framework.Server.ActivityLoggingAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) 在 System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext,CancellationToken cancelToken) --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()

查看日志记录的“详细信息”,我没有看到任何类似问题的原因。在错误之前,有几个日志条目,例如: TaskHubTimelineRecordLog.AppendLogContent、TaskHubTimelineRecordLog.CreateLog、TaskHubTimelineRecordFeeds.PostLines、TaskHubTimelineRecords.UpdateRecords。然后在“UpdateRecords”之后,SignalR 立即出现错误(这是后端和我开始构建的前端页面之间的通信。

【问题讨论】:

  • 在应用层服务器的 Windows 事件查看器中的 Application ad Service Logs\Microsoft-Team Foudnation Server\Debug 中有什么有趣的内容吗?
  • 应用程序池肯定正在关闭,但为什么呢?应用程序池的域帐户始终相同,密码不会过期。还尝试了“本地网络”帐户,同样的问题。尝试超时的东西,没有任何改变。在开始构建 10 秒后,它每次都会崩溃。我确信当我们的程序员使用 Visual Studio 连接到新的 TFS 时,这也会成为一个问题。我们在安装 TFS2012 时遇到了同样的问题。我们希望在 Windows2012 R2 中安装新的 TFS2015 时问题会消失
  • 刚刚将所有服务等更改为本地帐户而不是域帐户,但问题仍然存在..
  • 新的构建系统严重依赖长轮询 http 请求。 TFS 服务器是否位于可能会丢弃这些连接的设备、反向代理、VPN 或防火墙后面?看起来可能在某处配置了 20 秒的请求超时......我看不出这些会如何触发池重置,除非池被配置为在达到许多错误后回收。
  • 服务器是我们本地域的一部分,没有防火墙,没有反向代理,到 VPN。 Windows 防火墙已禁用,没有病毒扫描程序正在运行。

标签: tfs tfs-2015


【解决方案1】:

Pffff,终于找到问题了....对于具体的解决方案,我们使用 UnitTest.runsettings 文件(参见https://msdn.microsoft.com/en-us/library/jj635153.aspx)来配置应该从代码覆盖率报告中排除哪些程序集。

我已将“Visual Studio 测试”构建步骤配置为使用此文件。执行选项:“运行设置文件”。 runsettings 文件与 VS2012(更新 4)中此解决方案的文件相同。

由于某些奇怪的原因,TFS2015(更新 2)无法处理我们的运行设置文件。因此,通过删除上述设置,应用程序池不再停止......

例如,我在这里显示运行设置文件:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
   <!-- Configurations that affect the Test Framework -->
   <RunConfiguration>
      <!-- Path relative to solution directory -->
      <ResultsDirectory>.\TestResults</ResultsDirectory>

      <!-- [x86] | x64
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
      <TargetPlatform>x86</TargetPlatform>

      <!-- Framework35 | [Framework40] | Framework45 -->
      <TargetFrameworkVersion>Framework45</TargetFrameworkVersion>

      <!-- [false] | true -->
      <TreatTestAdapterErrorsAsWarnings>false</TreatTestAdapterErrorsAsWarnings>
   </RunConfiguration>

   <!-- Configurations for data collectors -->
   <!-- For code coverage exclusions etc see: http://msdn.microsoft.com/en-us/library/jj159530.aspx.
        Also: https://msdn.microsoft.com/en-us/library/jj159530.aspx -->
   <DataCollectionRunSettings>
      <DataCollectors>
         <DataCollector friendlyName="Code Coverage"
                        uri="datacollector://Microsoft/CodeCoverage/2.0"
                        assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
            <Configuration>
               <CodeCoverage>

                  <!-- Match assembly file paths: -->
                  <ModulePaths>
                     <Exclude>
                        <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
                        <ModulePath>.*fluentassertions.*</ModulePath>
                        <ModulePath>.*utils.test.dll</ModulePath>
                     </Exclude>
                  </ModulePaths>

                  <!-- Match the company name property in the assembly: -->
                  <CompanyNames>
                     <Exclude>
                        <CompanyName>.*microsoft.*</CompanyName>
                     </Exclude>
                  </CompanyNames>
               </CodeCoverage>
            </Configuration>
         </DataCollector>
      </DataCollectors>
   </DataCollectionRunSettings>

   <!-- Adapter Specific sections -->

   <!-- MSTest adapter -->
   <MSTest>
      <MapInconclusiveToFailed>true</MapInconclusiveToFailed>
      <CaptureTraceOutput>false</CaptureTraceOutput>
      <DeleteDeploymentDirectoryAfterTestRunIsComplete>true</DeleteDeploymentDirectoryAfterTestRunIsComplete>
      <DeploymentEnabled>true</DeploymentEnabled>
   </MSTest>
</RunSettings>

对我来说,这个文件没有任何问题,并且在 VS2015 和 VS2013 中使用它时它的工作原理是一样的......

如果没有这个文件,TFS2015 会报告错误的代码覆盖率,因为它不会忽略 3rd 方 nuget 包。因此,runsettings 文件的代码覆盖率约为 80%,但 TFS2015 现在报告的代码覆盖率为 31%....

但是,嘿,问题似乎已经解决了......或者我应该说,我在 TFS2015 中发现了一个错误 :-)

【讨论】:

【解决方案2】:

尝试以下方法:

  1. 重启服务器
  2. 删除 Team Foundation 缓存数据 tfs_data
  3. 更改服务器密码
  4. 重新启动 IIS 中存在的所有 TFS 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 2016-07-29
    • 2020-05-26
    • 2018-03-09
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多