首页 文章

docker上的Windows服务无法启动

提问于
浏览
1

我在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 查看所有服务时,我可以在'Stopped'模式的列表中看到它 . 当我使用 Start-Service TestService 时,我收到以下错误:

Start-Service:无法启动服务'TestService(TestService)' . at line:1 char:1 Start-Service TestService ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Start-Service],ServiceCommandException FullyQualifiedErrorId:StartServiceFailed,Microsoft.PowerShell.Commands.StartServiceCommand

试图找到信息但没有任何作用 . 有任何想法吗?

1 回答

  • 1

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

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

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

    $A | Format-List -Property *
    

    得到了例外 .

    显然它与我的应用程序使用的C dll有关 . 它可能会丢失或环境无法运行,但这是另一个我相信我可以解决的问题 .

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

相关问题