2

Webアプリケーションのエラーを処理するために、global.asaxのApplication_Error()イベントで作成されるログファイルと、日付に基づいて作成されたログファイル(1日あたり1つ)を作成しています。

エラーが発生し、同時に複数のユーザーからファイルが書き込みを取得するシナリオを検討しています

そのため、ファイルがすでに別のユーザーによって使用されているという例外がスローされる可能性があります。

誰もがそのようなシナリオに対処するのを助けることができます

どうもありがとう

4

2 に答える 2

1

mutex書き込み手順をロックするために使用します。エラーをスローする可能性のあるすべてのプール/スレッドをキャッチできるからでmutexはありません。lock()

MSDN には、詳細mutexと例があります。

http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx

簡単な例

public void LogThis(string LogDetails) 
{
    var mut = new Mutex(true, "LogMutexName");

    try
    {   
        // Wait until it is safe to enter.
        mut.WaitOne();

        // here you open write close your file
    }
    finally
    {
        // Release the Mutex.
        mut.ReleaseMutex();
    }   
}
于 2012-06-16T12:54:02.323 に答える
1

ELMAHのようなものを使用するだけで、かなりまともなエラー ログが得られます。どのように、何をログに記録するかという点で、非常に柔軟です。また、最小限の労力で NuGet を使用して追加することもできます。

またはNLogを見てください

于 2012-06-16T20:06:23.043 に答える