我已根据'单一服务器'安装了TFS 2015。手册(https://msdn.microsoft.com/en-us/Library/vs/alm/TFS/setup/single-server?f=255&MSPPError=-2147217396)。
我配置了一个简单的构建,构建了一个添加了单元测试项目的小型控制台应用程序,并进行了一次小单元测试。
构建配置现在有三个步骤。
现在,每次调用第三步时,都会出现错误,浏览器中的红色框带有文字:
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时遇到同样的问题。
查看事件查看器(应用程序),每次在问题发生之前都有以下信息:
信息:TFS服务
应用程序请求处理已开始
Server Version = Microsoft.TeamFoundation.Framework.Server,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a 服务帐户= NT AUTHORITY \ NETWORK SERVICE 机器名称= TEAMFS2015
应用领域:/ LM / W3SVC / 2 / ROOT / tfs-1-131066466082045873
信息:TFS服务
应用程序正在关闭,原因如下:HostingEnvironment 应用领域:/ LM / W3SVC / 2 / ROOT / tfs-1-131066466082045873
信息:TraceLog Profiler
TraceLog Profiler组件关闭,处理w3wp.exe
信息:TraceLog Profiler
TraceLog Profiler组件关闭,处理te.processhost.managed.exe
错误:Perflib
服务的开放程序" ASP.NET_64_2.0.50727"在DLL" C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_perf.dll"失败。此服务的性能数据将不可用。数据部分的前四个字节(DWORD)包含错误代码。
错误:Perflib
服务的公开程序" Lsa"在DLL" C:\ Windows \ System32 \ Secur32.dll"失败。此服务的性能数据将不可用。数据部分的前四个字节(DWORD)包含错误代码。
错误:PerfNET
无法打开服务器服务性能对象。数据部分的前四个字节(DWORD)包含状态代码。
更新
Microsoft Team Foundation Server应用程序池'已停止'每次。所以问题可能与应用程序池有关。或者应用程序池因为另一个错误而停止....
更新 阅读jessehouwing的评论,来自事件查看器的结果:'应用程序和服务日志' > ' Microsoft-Team Foundation Server' > '调试':
查看'详细信息'对于日志记录,我没有看到任何重新解决问题的原因。在错误之前,有几个日志条目,如: TaskHubTimelineRecordLog.AppendLogContent,TaskHubTimelineRecordLog.CreateLog,TaskHubTimelineRecordFeeds.PostLines,TaskHubTimelineRecords.UpdateRecords。然后在' UpdateRecords'之后立即发出SignalR的错误(这是我开始构建的后端和前端页面之间的通信。
答案 0 :(得分:2)
Pffff,终于找到了问题....对于特定的解决方案,我们使用UnitTest.runsettings文件(参见https://msdn.microsoft.com/en-us/library/jj635153.aspx)来配置应该从代码覆盖率报告中排除哪些程序集。
我已配置'Visual Studio Test'构建步骤以使用此文件。执行选项:'运行设置文件'。 runsettings文件与VS2012(更新4)中此解决方案的文件相同。
由于某些奇怪的原因,TFS2015(更新2)无法处理我们的runsettings文件。因此,通过删除上述设置,应用程序池不再停止....
例如,我在这里显示了runsettings文件:
<?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会报告错误的代码覆盖率,因为它不会忽略第三方nuget包。因此,runsettings文件的代码覆盖率约为80%,但TFS2015现在报告的代码覆盖率为31%....
但是嘿,问题似乎已经解决了......或者我应该说,我在TFS2015中发现了一个错误: - )
答案 1 :(得分:0)
尝试以下方法: