docker上的Windows服务无法启动

时间:2018-05-31 14:50:06

标签: windows powershell docker windows-container

我在VS 2017中创建了一个C#WCF Windows服务应用程序并添加了Docker支持。

创建了以下Dockerfile:

FROM microsoft/dotnet-framework:4.7.1-windowsservercore-1709
ARG source
WORKDIR /app
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["C:\\WcfService.exe"]

当我在VS中使用docker-compose构建它时出现错误:

  

无法从命令行或调试器启动服务。一个Windows   必须先安装服务(使用installutil.exe),然后再安装   从ServerExplorer,Windows服务管理工具开始   或NET START命令。程序'[2172] WcfService.exe'有   退出代码0(0x0)。

我已打开PowerShell并键入docker ps - 容器正在运行。 所以我用New-Service命令创建了“TestService”。 当我使用Get-Service查看所有服务时,我可以在“已停止”模式的列表中看到它。 当我使用Start-Service TestService时,我收到以下错误:

  

Start-Service:无法启动服务'TestService(TestService)'。   在行:1个字符:1   + Start-Service TestService   + ~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:OpenError:(System.ServiceProcess.ServiceController:ServiceController)   [Start-Service],ServiceCommandException       + FullyQualifiedErrorId:StartServiceFailed,Microsoft.PowerShell.Commands.StartServiceCommand

试图找到信息,但没有任何作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

好的,所以我接受了Jeroen的建议并深入挖掘以查看事件查看器。我在' Get-EventLog'上使用了一些过滤器。命令获取相关的错误行并将其存储在变量

$A = Get-EventLog -LogName System -Newest 10 -Source "Service Control Manager" | Select *

然后,我使用类似的东西格式化它:

$A | Format-List -Property *

并得到例外。

显然它与我的应用程序正在使用的C ++ DLL有关。它可能会丢失或环境无法运行,但这是我认为可以解决的另一个问题。

希望能帮助其他人遇到类似的问题。感谢。