0
私はしばらく前に書いたアプリケーションに本当に奇妙な問題があります。それは問題なく働いたが、しばらくの間それを残した後、単に機能を停止した。ここにコードを添付します:Windowsアプリケーションログに書き込めません(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();
}
}
終了したプロセスが終了すると、プログラムはアプリケーションログに書き込みます。この突然の問題は何ができるかによう
EventLog.WriteEntry(programSource, occurance);
任意のアイデア:
Exception: System.ComponentModel.Win32Exception (0x80004005): The specified path is invalid
それが原因としてこの行を引用している:いくつかの理由で、しかし、私は次のエラーを取得していますか?
'programSource'はイベントログサービスに登録されていますか? – AlG
レジストリキーHKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥services¥eventlog¥Application¥applicationNameに対して、問題のコードを実行しているユーザーの権限を与える必要があります。 –
@AlG EventLog.CreateEventSourceを使用してソースを生成するには、これを行う必要があります。プログラムソースをプログラムで登録する方法はありますか? – Rich