gpt4 book ai didi

c# - APPCRASH StackOverflowException clr.dll c00000fd

转载 作者:太空狗 更新时间:2023-10-29 23:20:09 24 4
gpt4 key购买 nike

我正在运行一个每天 24 小时执行的 .Net 控制台应用程序。它有一个错误,大约每 6 天发生一次。

我需要你的帮助来修复这个错误。首先我将提供一些背景知识,然后我将提供异常消息传递。

不幸的是我没有重现的步骤。当您继续阅读时,您会明白为什么。

首先是一些背景:

我的代码中有强大的异常处理(或者我认为如此)。例如,我的 Main() 方法中有一个 try...catch block ,它捕获任何未处理的异常,如果它们是致命的,它会重新启动底层任务。它适用于我自己的代码生成的任何异常。

我无法解释为什么我的代码中没有处理以下异常。我最好的猜测是 clr.dll 异常不会在托管堆栈中被捕获。如果是这样的话,我不知道如何生成堆栈跟踪。我什至不知道从哪里开始解决这个问题。

我正在运行的进程使用以下版本和模块:

  • C# .Net Framework 4.6.1
  • 控制台应用程序项目类型
  • System.Net.WebClient
  • log4net
  • Windows 7 64 位

崩溃时我检查了 RAM 和 HDD:两者都有足够的可用空间。

关于我正在执行的代码。该过程是一个连续循环,从网站下载数据并将其保存到文本文件中。如果有错误,将使用 log4net 记录。

基本循环是这样的:

 for (int i = 0; i < 5; i++)
{
try
{
return new WebClient().DownloadString(url);
}
catch
{
Thread.Sleep(500); // slow it down.
}
}

以下是发生异常时在我的控制台窗口中显示的唯一消息:(未显示堆栈跟踪)

Process is terminated due to StackOverflowException

我的控制台应用程序完全卡住,并弹出一个对话框窗口,其中包含以下信息(关闭此对话框也会终止我的应用程序)

 Problem signature:
Problem Event Name: APPCRASH
Application Name: foo.goo.BatchExecutor.exe
Application Version: 1.0.0.0
Application Timestamp: 5a50f3eb
Fault Module Name: clr.dll
Fault Module Version: 4.7.2117.0
Fault Module Timestamp: 59cf5105
Exception Code: c00000fd
Exception Offset: 0002429f
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 1033
Additional Information 1: 28e8
Additional Information 2: 28e8aacd8abfe32876bc8363e8e5c526
Additional Information 3: 6916
Additional Information 4: 6916665ca52ff482d854f190abcf46b2

我唯一能找到有关崩溃信息的其他地方是 Windows 事件日志:

Log Name:      Application
Source: Application Error
Date: 1/23/2018 5:51:46 PM
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: FOOGOO
Description:
Faulting application name: foo.goo.BatchExecutor.exe, version: 1.0.0.0, time stamp: 0x5a50f3eb
Faulting module name: clr.dll, version: 4.7.2117.0, time stamp: 0x59cf5105
Exception code: 0xc00000fd
Fault offset: 0x0002429f
Faulting process id: 0x1e00
Faulting application start time: 0x01d39169354e41a7
Faulting application path: C:\Users\Owner\Desktop\SHARED\foo.goo.BatchExecutor\foo.goo.BatchExecutor.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: 21b9b2a4-00a9-11e8-9f6c-94c69110a719
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2018-01-24T01:51:46.000000000Z" />
<EventRecordID>1852</EventRecordID>
<Channel>Application</Channel>
<Computer>FOOGOO</Computer>
<Security />
</System>
<EventData>
<Data>foo.goo.BatchExecutor.exe</Data>
<Data>1.0.0.0</Data>
<Data>5a50f3eb</Data>
<Data>clr.dll</Data>
<Data>4.7.2117.0</Data>
<Data>59cf5105</Data>
<Data>c00000fd</Data>
<Data>0002429f</Data>
<Data>1e00</Data>
<Data>01d39169354e41a7</Data>
<Data>C:\Users\Owner\Desktop\SHARED\foo.goo.BatchExecutor\foo.goo.BatchExecutor.exe</Data>
<Data>C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll</Data>
<Data>21b9b2a4-00a9-11e8-9f6c-94c69110a719</Data>
</EventData>
</Event>

*****更新解决方案 *****

我已经放弃尝试在 .Net 中处理这个异常。我找到了一个有效的解决方法。此解决方法适用于 Windows,特别是具有事件查看器的任何版本。

解决方法说明。

1) 打开控制面板->管理工具->事件查看器->Windows 日志->应用程序。

2) 选择违规事件。在我的例子中,它是状态错误,并且与您在上面看到的示例匹配。

3) 在右侧单击“将任务附加到此事件”。

4) 完成向导。就我而言,我重新启动了我的应用程序。

5) 保存任务。

6) 现在切换到任务计划程序并找到任务。单击属性。单击选项卡并根据需要配置任务。

最佳答案

*****更新解决方案 *****

我已经放弃尝试在 .Net 中处理这个异常。我找到了一个有效的解决方法。此解决方法适用于 Windows,特别是具有事件查看器的任何版本。

解决方法说明。

1) 打开控制面板->管理工具->事件查看器->Windows 日志->应用程序。

2) 选择违规事件。在我的例子中,它是状态错误,并且与您在上面看到的示例匹配。

3) 在右侧单击“将任务附加到此事件”。

4) 完成向导。就我而言,我重新启动了我的应用程序。

5) 保存任务。

6) 现在切换到任务计划程序并找到任务。单击属性。单击选项卡并根据需要配置任务。

关于c# - APPCRASH StackOverflowException clr.dll c00000fd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com