我正在将构建服务从一个古老的Windows XP服务器重新定位到Windows Server 2K12 R2,现在我仍然坚持看似许可问题:
在我的构建的“集成测试”步骤中,NUnit失败了:
mysql_query
构建代理程序以用户 BuildSrvService 运行。我在Windows Server 2012 R2 Datacenter服务器上使用TeamCity Professional 9.1.7和NUnit 2.6.4。
我假设这里的解决方案是以某种方式将事件日志的适当权限授予运行构建代理的用户,但我需要一点帮助: - )
答案 0 :(得分:1)
由于一些兼容性问题,我们 - 现在 - 继续使用在.net 3.5上运行的旧版NUnit。 Windows Server 2003引入的安全性更改要求在授予对事件日志的访问权限之前注册应用程序。
有关详细信息,请参阅https://stackoverflow.com/a/7848414/1353645和https://stackoverflow.com/a/4603820/1353645。
快速修复:找出您的应用程序名称(在源代码中查找 EventLog.CreateEventSource )并从提升的PowerShell更新您的注册表:
PS> $RegistryBase = "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Application"
PS> $ApplicationName = "MyApplicationName"
PS> New-Item `
-Force `
-Path $RegistryBase `
-Name $ApplicationName
PS> New-ItemProperty `
-Force `
-Path "$RegistryBase\$ApplicationName" `
-Name "EventMessageFile" `
-PropertyType ExpandString `
-Value "%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll"