我正在尝试使用PowerShell创建并启动Windows服务。
当我使用除一个特定名称之外的其他名称时,服务已创建,但无法启动。
当我用exe文件的名称创建服务时,它可以启动,但当我给予它一个不同的名称时,它无法启动。
我正在以管理员身份运行PowerShell脚本。
有什么建议吗?
function InstallService(
[string] $MsDeployHost,
[string] $ServiceName,
[string] $DisplayName,
[string] $ServicePath,
[string] $ServiceDescription,
[object] $Credential) {
if($MsDeployHost -eq "local") {
New-Service -name $ServiceName -binaryPathName $ServicePath -displayName $ServiceName -StartupType Automatic
Start-Service -name $ServiceName
} else { ....
我得到的错误:启动服务:由于以下错误,无法启动服务“Service1(Service1)”:无法在计算机“.”上启动服务Service1。
当我尝试手动启动它时,我得到:“错误1053:服务未及时响应启动或控制请求”
7条答案
按热度按时间mhd8tkvw1#
问题是,除非您的服务是为了处理它而编写的,否则您需要使用一个 * 特定的服务名 * 来运行一个特定的服务(注意名称区分大小写)。这是因为服务在启动时需要使用其服务名称向服务控制管理器注册,以接收启动/停止通知并发送状态更新。如果使用其他名称安装服务,但可执行文件无法知道这一点(通过配置设置或诸如此类的东西),则此注册将失败,并且服务无法启动(对于操作系统,它将看起来好像服务未能响应)。
您可以将显示名称设置为任何您喜欢的名称,但是不能使用任意的服务名称,除非服务被设计为支持此名称。
dbf7pr2w2#
我遇到了同样的问题,对我来说,问题是服务应该使用用户的凭据运行,而用户的密码已经更改-之后服务无法再登录,无法运行。
您可以在失败后立即查看“服务控制管理器”日志,如下所示:
错误1326是“错误的用户名或密码”。
7d7tgy0s3#
我的问题是服务控制管理器中的服务是
Disabled
。然后我把它放在
manual
状态和Start-Service工作。高温高压
niwlg2el4#
如果这也是一个.NET控制台应用程序,则必须调用ServiceBase。在Programidercs中的main方法中运行。这为我修复了这个错误。
在这里查看更具体的代码:.NET console application as Windows service
tuwxkamq5#
对我来说,这是一个不正确的值在
appsettings.json
。没有转义一些特殊字符。qni6mghb6#
此错误消息非常一般,并没有说任何有用的东西。原因可能是缺少配置文件,缺少.NET框架或程序所依赖的任何东西。
要查看真实的的原因,请打开Windows事件日志,并在Windows日志-〉应用程序下查找任何错误。
7rfyedvj7#
我得到了同样的错误,发现我错过了在服务器上安装.Net 6。值得看看事件日志。