为什么 svchost.exe 会终止我的 C# 应用程序?

Mik*_*ike 6 c# windows termination silent

出于某种原因,我的 C# 应用程序被 svchost.exe 终止,我试图了解原因。在我使用 Windows 调试工具中的 Gflags.exe 打开静默进程退出日志记录之前,它一直在默默地终止应用程序。它很少发生在我无法在(客户电脑)上运行调试工具的机器上。

该活动并没有真正为我提供太多信息。终止代码是 805306369=0x30000001,但我似乎无法在网上找到任何有用的信息来告诉我如何解释该数字。

我希望 Silent Process Exit 日志能对此有所了解,但现在我有更多问题。

任何意见,将不胜感激。提前感谢您的帮助!

这是有问题的事件:

Log Name:      Application
Source:        Microsoft-Windows-ProcessExitMonitor
Date:          06/05/2013 04:12:17 PM
Event ID:      3001
Task Category: None
Level:         Information
Keywords:      Classic
User:          SYSTEM
Computer:      PC
Description:
The process 'C:\Users\Administrator\AppData\Local\MyApp.exe' was terminated by the process 'C:\Windows\System32\svchost.exe' with termination code -805306369. The creation time for the exiting process was 0x01ce61ad4e81c70c.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-ProcessExitMonitor" Guid="{FD771D53-8492-4057-8E35-8C02813AF49B}" EventSourceName="Process Exit Monitor" />
    <EventID Qualifiers="16384">3001</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2013-06-05T20:12:17.000000000Z" />
    <EventRecordID>2350</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>PC</Computer>
    <Security UserID="xxxxx" />
  </System>
  <EventData Name="EVENT_PROCESSTERMINATION_CROSSPROCESS">
    <Data Name="param1">C:\Users\Administrator\AppData\Local\MyApp.exe</Data>
    <Data Name="param2">C:\Windows\System32\svchost.exe</Data>
    <Data Name="param3">-805306369</Data>
    <Data Name="param4">01ce61ad4e81c70c</Data>
  </EventData>
</Event>
Run Code Online (Sandbox Code Playgroud)

小智 0

我将相同的响应放在类似的线程中:Why would svchost.exe Termination my process

svchost.exe 正是其名称所表示的(托管服务),并且是在 services.msc 中注册/列出的服务的父级/容器(作为大多数人熟悉的主界面)。

Windows 错误报告有一个托管服务,其服务名称列为“Windows 错误报告服务”,但服务启动时发送的实际命令行将传递“WerSvcGroup”

为了查看正在托管的实际服务/进程名称,最简单的方法是打开 cmd(或 powershell)并输入 tasklist /SVC 输出将是托管服务的名称和 ProcessId,您可以用于参考任务管理器或任何适用的地方。

当我第一次开始使用 Silent Process Monitor 时,我必须进行逆向工程并设置跟踪来尝试找出相同的信息,我可以给出的一点建议是,如果您选择执行转储文件的选项,它将生成一个转储被杀死的进程,并转储被杀死/终止的进程,如果打开 SvcHostxxxxx.dmp 的转储文件,只需执行 !peb 即可查找进程的命令行,如果它是 Windows 错误报告,您会在调试器的 !peb 输出中看到它

图像文件:'C:\ Windows \ System32 \ svchost.exe' 命令行:'C:\ Windows \ System32 \ svchost.exe -k WerSvcGroup'