Ero*_*ocM 3 .net c# visual-studio-2010
我的所有代码都可以正常工作:
using System.Diagnostics;
namespace WebPortalLogging
{
public static class EventLogging
{
public static void LogEvent(string origin, string message, EventLogEntryType eventLogEntryType, int eventId)
{
const string source = "Software";
const string log = "Application";
if (!EventLog.SourceExists(source))
EventLog.CreateEventSource(source, log);
EventLog.WriteEntry(source, message, eventLogEntryType, eventId);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我甚至在另一个项目中使用这个类,它工作正常.当它到达这一行时:
if(!EventLog.SourceExists(source))EventLog.CreateEventSource(source,log);
它击中了这条线并退出.
这是我的输出中的内容:
The thread 'vshost.NotifyLoad' (0x28c) has exited with code 0 (0x0).
The thread 'vshost.LoadReference' (0x470) has exited with code 0 (0x0).
'VmBackup.vshost.exe' (Managed (v4.0.30319)): Loaded 'D:\Google Drive\Code\VMBackup\VMBackup\bin\Debug\VmBackup.exe', Symbols loaded.
'VmBackup.vshost.exe' (Managed (v4.0.30319)): Loaded 'D:\Google Drive\Code\VMBackup\VMBackup\bin\Debug\WebPortalLogging.dll', Symbols loaded.
The thread '<No Name>' (0xa44) has exited with code 0 (0x0).
'VmBackup.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The thread '<No Name>' (0x107c) has exited with code 0 (0x0).
The thread '<No Name>' (0x1838) has exited with code 0 (0x0).
The thread 'vshost.RunParkingWindow' (0xa78) has exited with code 0 (0x0).
The thread '<No Name>' (0x10e0) has exited with code 0 (0x0).
The program '[6436] VmBackup.vshost.exe: Program Trace' has exited with code 0 (0x0).
The program '[6436] VmBackup.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).
Run Code Online (Sandbox Code Playgroud)
它没有到达EventLog.WriteEntry.它也没有输出到事件日志.我重新启动了VS2010并没有帮助.我已经开启了所有错误提示.
我错过了什么?
首先,我会在条件周围使用大括号,因为如果EventLog没有源,EventLog应该写入条目有点不清楚.
if (!EventLog.SourceExists(source))
{
EventLog.CreateEventSource(source, log);
}
EventLog.WriteEntry(source, message, eventLogEntryType, eventId);
Run Code Online (Sandbox Code Playgroud)
还尝试将其包装在一个try/catch
块中,看看是否有任何未处理的异常导致程序随机退出.
try {
if (!EventLog.SourceExists(source))
{
EventLog.CreateEventSource(source, log);
}
EventLog.WriteEntry(source, message, eventLogEntryType, eventId);
} catch (Exception e)
{
Console.WriteLine(e);
}
Run Code Online (Sandbox Code Playgroud)
附加:线程'vshost.NotifyLoad' (0x28c) has exited with code 0 (0x0)
.线程'vshost.LoadReference' (0x470) has exited with code 0 (0x0)
.不是错误.Visual Studio告诉您后台线程已退出.0表示线程成功运行.
归档时间: |
|
查看次数: |
9818 次 |
最近记录: |