无法写入 Windows 应用程序日志 (C#)
Can't Write to Windows Application Log (C#)
我不久前编写的应用程序遇到了一个非常奇怪的问题。它一直没有问题地工作,但是在搁置一段时间后,它就停止了运行。我将在此处附上代码:
try
{
using (Process proc = Process.Start(starter))
{
windowHider();
proc.WaitForExit();
DateTime endStamp = DateTime.Now;
endStamp = truncate(endStamp);
TimeSpan diff = endStamp.Subtract(startStamp);
string programSource = "applicationName";
string logLocation = "Application";
string occurance = "Var='" + varName + "' Var2='"+ var2Name + "' Var3='" + var3Name + "' Var4='" + var4Name + "' Var5='" + var5Name + "' Var6='" + var6Name + "'";
try
{
if (!EventLog.SourceExists(programSource))
{
EventLog.CreateEventSource(programSource, logLocation);
}
else
{
EventLog.WriteEntry(programSource, occurance);
}
}
catch (Exception err)
{
string message = "There was an error with usage logging. Please contact IT.";
MessageBox.Show(message);
errorLogger(message, err.ToString(), ((Control)sender).Name);
this.Close();
}
this.Close();
}
}
当启动的进程退出时,程序将写入应用程序日志。但是,出于某种原因,我收到以下错误:
Exception: System.ComponentModel.Win32Exception (0x80004005): The
specified path is invalid
它引用这一行作为原因:
EventLog.WriteEntry(programSource, occurance);
关于这个突如其来的问题有什么想法吗?
我想通了!注册表中有损坏的东西,一定有另一个损坏的组件潜伏在某处。我更改了源名称,它没有任何问题。
原来的 sourcename 可以在其他机器上运行,这让我觉得这肯定是注册表出了问题。
我不久前编写的应用程序遇到了一个非常奇怪的问题。它一直没有问题地工作,但是在搁置一段时间后,它就停止了运行。我将在此处附上代码:
try
{
using (Process proc = Process.Start(starter))
{
windowHider();
proc.WaitForExit();
DateTime endStamp = DateTime.Now;
endStamp = truncate(endStamp);
TimeSpan diff = endStamp.Subtract(startStamp);
string programSource = "applicationName";
string logLocation = "Application";
string occurance = "Var='" + varName + "' Var2='"+ var2Name + "' Var3='" + var3Name + "' Var4='" + var4Name + "' Var5='" + var5Name + "' Var6='" + var6Name + "'";
try
{
if (!EventLog.SourceExists(programSource))
{
EventLog.CreateEventSource(programSource, logLocation);
}
else
{
EventLog.WriteEntry(programSource, occurance);
}
}
catch (Exception err)
{
string message = "There was an error with usage logging. Please contact IT.";
MessageBox.Show(message);
errorLogger(message, err.ToString(), ((Control)sender).Name);
this.Close();
}
this.Close();
}
}
当启动的进程退出时,程序将写入应用程序日志。但是,出于某种原因,我收到以下错误:
Exception: System.ComponentModel.Win32Exception (0x80004005): The specified path is invalid
它引用这一行作为原因:
EventLog.WriteEntry(programSource, occurance);
关于这个突如其来的问题有什么想法吗?
我想通了!注册表中有损坏的东西,一定有另一个损坏的组件潜伏在某处。我更改了源名称,它没有任何问题。
原来的 sourcename 可以在其他机器上运行,这让我觉得这肯定是注册表出了问题。