我有一个基于 Framework 2.0 构建的 .NET 应用程序。
我不知道下一步该做什么。 我希望有人至少可以建议一种方法,让我在运行 .exe 时获取更多错误信息,以便我可以查明问题。
提前致谢。
迈克
编辑1
这是我在事件日志中发现的错误:
Log Name: Application
Source: Application Error
Date: 10/10/2013 1:42:49 PM
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: [my development machine]
Description:
Faulting application name: BARTJr.exe, version: 1.0.0.1, time stamp: 0x5256e6de
Faulting module name: KERNELBASE.dll, version: 6.1.7601.18229, time stamp: 0x51fb1677
Exception code: 0xe0434f4d
Fault offset: 0x000000000000940d
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Report Id: %13
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="2013-10-10T17:42:49.000000000Z" />
<EventRecordID>19455</EventRecordID>
<Channel>Application</Channel>
<Computer>mcaputow7.ezesoft.net</Computer>
<Security />
</System>
<EventData>
<Data>BARTJr.exe</Data>
<Data>1.0.0.1</Data>
<Data>5256e6de</Data>
<Data>KERNELBASE.dll</Data>
<Data>6.1.7601.18229</Data>
<Data>51fb1677</Data>
<Data>e0434f4d</Data>
<Data>000000000000940d</Data>
</EventData>
</Event>
编辑2
该错误引用了带有附加信息的临时文件。 以下是该文件的内容:
<?xml version="1.0" encoding="UTF-16"?>
<WERReportMetadata>
<OSVersionInformation>
<WindowsNTVersion>6.1</WindowsNTVersion>
<Build>7601 Service Pack 1</Build>
<Product>(0x1): Windows 7 Ultimate</Product>
<Edition>Ultimate</Edition>
<BuildString>7601.18113.amd64fre.win7sp1_gdr.130318-1533</BuildString>
<Revision>1130</Revision>
<Flavor>Multiprocessor Free</Flavor>
<Architecture>X64</Architecture>
<LCID>1033</LCID>
</OSVersionInformation>
<ProblemSignatures>
<EventType>CLR20r3</EventType>
<Parameter0>ssms.exe</Parameter0>
<Parameter1>2011.110.2100.60</Parameter1>
<Parameter2>4f35e2d9</Parameter2>
<Parameter3>System.Management</Parameter3>
<Parameter4>4.0.0.0</Parameter4>
<Parameter5>4ba1e140</Parameter5>
<Parameter6>d0</Parameter6>
<Parameter7>1c</Parameter7>
<Parameter8>RXOEJIH3RSKJEZ4XXWPXUDKCPPWJODNG</Parameter8>
</ProblemSignatures>
<DynamicSignatures>
<Parameter1>6.1.7601.2.1.0.256.1</Parameter1>
<Parameter2>1033</Parameter2>
<Parameter22>0a9e</Parameter22>
<Parameter23>0a9e372d3b4ad19135b953a78882e789</Parameter23>
<Parameter24>0a9e</Parameter24>
<Parameter25>0a9e372d3b4ad19135b953a78882e789</Parameter25>
</DynamicSignatures>
<SystemInformation>
<MID>BAB83330-1394-44F8-8298-044776CE31CB</MID>
<SystemManufacturer>Microsoft Corporation</SystemManufacturer>
<SystemProductName>Virtual Machine</SystemProductName>
<BIOSVersion>090004</BIOSVersion>
</SystemInformation>
</WERReportMetadata>
这个问题已经解决了。 我最终想尝试“以管理员身份运行”,这使我能够看到正在发生的实际错误。 需要管理员权限才能显示 .NET 未处理的异常对话框是没有意义的,但事实就是如此。
我以前曾多次经历过这种情况,每次都是因为目标计算机没有我的应用程序引用的程序集(DLL)。 当应用程序引用立即需要的程序集时,例如在启动表单(对于 Win 表单项目)可以显示之前,那么它将以这种方式崩溃。
无论如何,我不保证这就是你的答案,但这是值得一看的。
首先将以下代码放入您的输入点(主)中 可以在崩溃之前捕获异常
AppDomain.CurrentDomain.UnhandledException += (sender,e)=>{
if(e.IsTerminating)
{
//TODO: write your log
}
};
我刚才想到了这个问题,我发现是某些dll丢失导致了这个问题。我被迫终止了应用程序的更新,我猜这可能是损失的原因。
我该怎么办。我不明白一件事。我可以做一些非常简单的事情来解决这个问题吗? 而且我仍在使用 Windows 7。