- - PR -
log4netの実行時にSystem.Io.FileLoadExceptionが出てしまう
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-02 17:49
こんにちは。
log4netの1.2.9-betaをつかってログを出力しようとしているのですが、実行時に "System.IO.FileLoadException: アクセスが拒否されました : 'log4net'" というエラーが出力されてしまいます。。。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18540&forum=7&3 の記事も読んで、web.configへの設定やソースへの記述は上手くいっていると思うのですが、 やはりアクセス権の問題なのでしょうか・・・・ http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_03.html ↑この辺りもチェックしたのですが、、、今ひとつ要領を得ません。 気になるのは、 「ソース エラー: 」の欄に[関連したソースの行はありません]というメッセージが出ています。。。 開発環境は windowsXP Pro + IIS5.1 VisualStudio.NET2003 です。 何か知っている方いらっしゃいましたらご教授ください。 よろしくお願いします。 | ||||
|
投稿日時: 2005-04-02 18:38
こんにちは、じゃんぬ です。
メンバを参照すると、もっと詳しいことがわかるかもしれません。 FileLoadException クラス _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-04-03 12:02
じゃんぬさん、返信ありがとうございます。
とりあえず、Global.asaxのApplication_ErrorでExceptionを取れるようにしました。 FileLoadExceptionクラスのどのメンバ情報に注目したらよいでしょうか? 早速クイックウォッチで見てみましたが、折角助言を頂いたにも関わらず、イマイチ何が問題なのか整理できません。。。 *コンパイル時にはキチンとlog4net.dllはロードされているのですが・・・ | ||||
|
投稿日時: 2005-04-04 19:17
こんにちは、中西と申します。
log4netの1.2.9-betaはまだ使用していないのですが、 log4net 1.2.0 Beta8の頃では、たしか IISのログファイルを格納するディレクトリに対して、 セキュリティタブからASPNETアカウントで読み取り、書き込みの権限を 与えてやらないとログが書けなかったと記憶しています。 参考: http://logging.apache.org/log4net/release/faq.html#HC-31578843 | ||||
|
投稿日時: 2005-04-08 11:42
中西さん
書き込みありがとうございます。 早速試してみます! | ||||
|
投稿日時: 2005-04-10 18:31
中西さん
log4net 1.2.0 Beta8を利用するように変更しました。 また、ログを出力する対象のフォルダに対して、ASPNETユーザの書き込み・読み取りの権限を付与しました。 それでも、やはりFileLoadExceptionになってしまいます。 これは環境依存の何かしらの問題なのでしょうか??? まったくログが出力されずに閉口しております。。。 何か思い当たる事がありませんでしょうか?? | ||||
|
投稿日時: 2005-04-11 11:50
回答ではありません。
原因の切り分けのために、別のアプローチを試してみてはいかが?
log4netを使わずに、直接コードからファイルを書き込んでみる。 他のユーザで書き込んでみる。 他のプログラムからlog4netを書き込んでみる。 おもいっきりセキュリティをゆるくしてみる。 など。 _________________ たつごろー codeseek こみゅぷらす | ||||
|
投稿日時: 2005-04-11 12:00
こんにちは、中西です。
私も、たつごろーさんがお勧めされているアプローチを試されてみるのをお勧めします。。 原因の切り分けをして、書き込めない条件を絞った上で原因究明をされるのがよいでしょう。 -- 私が思いつく事といえば、WebアプリケーションのAssemblyInfoクラスに、以下の記述を書いてなければ、System.IO.FileNotFoundExceptionを吐くようです。しかし、これはlog4net関係のクラスに対しての例外だと思いますので、状況は異なるでしょう。 C# [assembly: log4net.Config.DOMConfigurator(Watch=true)] VB.NET <Assembly: log4net.Config.DOMConfigurator(Watch:=True)> あと、私の場合はWebアプリケーションのbinフォルダ内にlog4net.dllを配置するようにしています。 申し訳ありませんが、現状ではこれくらいしか思い浮かびません。 [ メッセージ編集済み 編集者: tsune 編集日時 2005-04-11 12:20 ] |
1