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

问题描述 投票:0回答:1

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

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

我希望静默进程退出日志能够对此有所启发,但现在我有更多问题。

如有任何建议,我们将不胜感激。提前感谢您的帮助!

这是有问题的事件:

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>
c# windows silent termination
1个回答
0
投票

我在类似的线程中放置了相同的响应:Why would svchost.exe终止我的进程

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

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

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

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

ImageFile: 'C:\Windows\System32\svchost.exe' 命令行: 'C:\Windows\System32\svchost.exe -k WerSvcGroup'

© www.soinside.com 2019 - 2024. All rights reserved.