指定的服务器标记为删除,如何解决“指定的服务已被标记为删除”错误

可能有几个原因导致服务卡在“标记为删除”中。

SysInternals的Process Explorer打开 。 closures它应该导致服务的自动删除。

任务pipe理器已打开 。

Microsoftpipe理控制台(MMC)已打开 。 要确保closures所有实例,请运行taskkill /F /IM mmc.exe 。

服务控制台打开 。 这与以前的观点相同,因为服务控制台由MMC托pipe。

事件查看器已打开 。 再一次,这和第一点是一样的。

键HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ {服务名称}存在 。

其他人login到服务器,并有一个前面提到的应用程序打开。

打开用于debugging服务的Visual Studio实例。

这也可能是由于打开服务控制台造成的。 Windows将不会实际删除该服务,直到它被closures。

在我的情况下,它closuresServices后工作。 检查Services.msc是否打开,如果是,closures它并检查在Task Managerfind的任何服务进程。

嗨,大家好,我有同样的问题

最后,我决定杀死服务过程

因为它尝试下面的步骤

1-获得服务的ID

sc queryex

2千位与

taskkill / F / PID

如上所示删除registry项让我的服务停留在停止状态。 以下程序适用于我:

打开任务pipe理器>select服务选项卡>select服务>右键单击并select“去处理”>右键单击该进程并select结束进程

服务应该在此之后消失

在我的情况下,它是由创buildeventLog源时未处理的exception引起的。 使用try catch来指出原因。

发现另外一件事要检查 – 看看任务pipe理器 – 如果其他用户连接到这个盒子,即使他们是“断开”,你必须实际签署他们的服务,最终删除。

在我的情况下,我执行taskkill /f /im dongleserver.exe ,其中dongleserver.exe是我的程序的exe文件。

然后我可以重新安装我的程序了。

在Windows 7之后的版本(未经validation,但是由Windows Server 2012 R2的最新经验)看来,服务控制pipe理器(SCM)更为严格。

在Windows 7上,它只是产生另一个进程,现在正在检查服务进程是否还在,并且可能返回ERROR_SERVICE_MARKED_FOR_DELETE(1072),以便后续调用CreateService / DeleteService,即使该服务似乎已停止。

我在这里说的是Windows API代码,但是我想清楚地说明发生了什么,所以这个序列可能会导致提到的错误:

SC_HANDLE hScm = OpenSCManager(nullptr, nullptr, SC_MANAGER_ALL_ACCESS); SC_HANDLE hSvc = OpenService(hScm, L"Stub service", SERVICE_STOP | SERVICE_QUERY_STATUS | DELETE); SERVICE_STATUS ss; ControlService(hSvc, SERVICE_CONTROL_STOP, &ss); // ... wait for service to report its SERVICE_STOPPED state DeleteService(hSvc); CloseServiceHandle(hSvc); hSvc = nullptr; // any further calls to CreateService/DeleteService will fail // if service process is still around

在服务进程已经报告了SERVICE_STOPPED状态之后,服务进程依然存在的原因并不奇怪。 这是一个常规的进程,其主线程在调用StartServiceCtrlDispatcher API时“卡住”,所以它首先对停止控制动作作出反应,但是必须执行其余的代码序列。

单片机/操作系统不能很好地处理这个问题,这是很不幸的。 程序化的解决scheme有点简单和准确:在停止服务之前获取服务可执行程序的进程句柄,然后等待此句柄变成信号。

如果从系统pipe理的angular度来解决这个问题,解决scheme也是等待服务过程完全消失。

这是对我有用的: – 我遇到了同样的问题:我的服务被卡在“标记为删除”。 – 我打开services.msc我的服务确实显示为正在运行,虽然它已经被卸载。 – 我点击停止接收到错误消息,说服务不处于接收控制消息的状态。 尽pipe如此,这项服务已经停止。 – closuresservices.msc。 – 重新打开services.msc。 – 服务不见了(不再显示在服务列表中)。

(环境是Windows 7)

closures当前打开的每个窗口,然后运行以下命令解决了我的问题:

taskkill /F /IM mmc.exe

如果@MainMa提供的步骤不起作用,请遵循以下步骤

步骤1尝试从Windows任务pipe理器或使用taskkill / F / PID查杀进程。 你可以通过命令“sc queryex”find进程的pid。 如果仍然无法卸载,请尝试下一步。

第2步如果以上

运行Windows的自动search按名称search服务并删除结果。

错误的主要原因是进程没有停止。 解决它启动任务pipe理器去服务,看看你是否仍然能够看到你的服务,比去那个服务和结束进程的过程。 比问题将完全解决。

我在使用Application Verifiervalidation我的win服务时遇到此问题。 即使我closures了应用程序版本我的服务被阻止删除。 只有从App Ver中删除服务解决了问题,并立即删除服务。 看起来像一些过程仍然使用您的服务后,你试图删除一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值