DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ログ出力について(C#2005)

環境/言語:[C#2005]
分類:[.NET]

C#2005での開発でログ出力(TraceSource)に関しまして、ご質問があります。

プログラムが異常終了した時にログ出力を行っています。
Program.csの中で、CatchでExceptionを拾って、ログに出力しているのですが、問題が発生しております。

ソリューション内で実行した場合には、問題なく全てのプログラムで出力されるのですが、
インストーラを使って、インストールしたものを実行し、異常終了させるとログが出力されません。(出力されるプログラムが一部あります)

こんな経験がある方はおりますでしょうか?
この問題をどうしても解消させないといけないのですが、心当たりのあるかたはおりますでしょうか?

ご教授お願い致します。
相対パスで指定していてカレントディレクトリが想定外のところに設定されてたとか。
Program Files 以下とかの権限がないところに書き込もうとしてるとか。
Hongliangさん、さっそくのご返答ありがとうございます。

Program Files 以下に今回開発しているシステムのフォルダがあり、ログも出力されます。ただ、ログ出力されるプログラムもありますので、権限に関しましては問題ないと思っております。


原因が全くわかりません・・・
■No26503に返信(PGさんの記事)
デバッグ時しか作成されない情報を Release ビルドで出してるとか
そういうのでも無くって?
出力されるログと出力されないログの違いに関する情報が全く無い
のでは、見当つけるのも難しいです。

サンプルコードや、具体的なログ内容など、もっと情報を出してください。
Releaseモードでログを出力するようになっており、Releaseモードでインストーラを作成しております。

ログの出力方法はこちらのサイトのサンプルをほぼそのまま使用しております。
http://dobon.net/vb/dotnet/programing/tracesource.html

どのプログラムも同じCatchを通るように作成しておりますので、特に違いはありません。多少違えは見当がつくのですが・・・
原因が分かりました。

今回、Program.cs内のApplication.Run()をTry〜Catchで括っていたのですが、インストーラを経由するとCatchでExceptionを取得しない場合があることがわかりました。
細かい詳細はまだ不明なのですが、Catchの仕方を変える(Catchを行うハンドラを追加する)ことで解決できました。

ご心配をお掛け致しました。

失礼致します。。。
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
辺りを、Mainでフォームをnewする前に入れてみるとどうでしょう?

DOBON.NET | プログラミング道 | プログラミング掲示板