- PR -

ASP.NETでログファイルの出力中にエラー

1
投稿者投稿内容
mito
ベテラン
会議室デビュー日: 2002/05/17
投稿数: 50
投稿日時: 2002-12-17 18:10
こんにちは。
ASP.NETからVB.NETで作成したコンポーネントを呼び出して
そこでログファイルにメッセージを出力しています。
ところが処理中にエラーが発生して書き込めないことが時々あります。

パス "E:\Rireki\wwwroot\webfiles\Log\LogFile.txt" の一部が見つかりませんでした。
説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.IO.DirectoryNotFoundException: パス "E:\Rireki\wwwroot\webfiles\Log\LogFile.txt" の一部が見つかりませんでした。

スタック トレース:
[DirectoryNotFoundException: パス "E:\Rireki\wwwroot\webfiles\Log\LogFile.txt" の一部が見つかりませんでした。]
System.IO.__Error.WinIOError(Int32 errorCode, String str) +287
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy) +859
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) +44
System.IO.StreamWriter.CreateFile(String path, Boolean append) +55
System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) +49
System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding) +20
以下略

というものなのですが、ファイルの一部が見つからないというのはどういうことなのでしょうか?
別のユーザが使用中なのかと思って、
試しにわざと別プログラムでログファイルを掴んだまま、ASP.NETを動かしたら
プロセスはファイル "E:\Rireki\wwwroot\Log\LogFile.txt" にアクセスできません。このファイルは別のプロセスが使用中です。
というエラーでした。
ちなみにコンポーネントは
Public Class RirekiBase
Inherits System.ComponentModel.Component

'ログ出力
Public Sub WriteLog(ByVal strComment As String, ByVal strLogFileName As String)

Dim objLogFile As StreamWriter
'ログファイルオープン
objLogFile = New StreamWriter(strLogFileName, True, Text.Encoding.GetEncoding("Shift-JIS"))
'ログファイル出力
objLogFile.WriteLine(Format$(Now(), "yyyy/MM/dd hh:mm:ss ") & strComment)
'ログファイルクローズ
objLogFile.Close()

End Sub
End Class
こんな感じです。
なにか原因に心当たりがあられる方、よろしくご教授ください。
1

スキルアップ/キャリアアップ(JOB@IT)